최고의 펄 형식의 출력 튜토리얼 2024년, 이 튜토리얼에서는 변수 형식,다른 파일로 출력,를 배울 수 있습니다.
펄 매우 강력한 텍스트 처리 언어의 데이터이다.
펄 서식 포맷을 정의하고, 지정된 템플릿에 의해 기록 데이터의 출력을 이용하기 위해 사용될 수있다.
다음과 같이 펄 형식 정의 구문은 다음과 같습니다
format FormatName = fieldline value_one, value_two, value_three fieldline value_one, value_two .
분석 매개 변수 :
다음은 간단한 예는 형식이됩니다
#!/usr/bin/perl $text = "google w3big taobao"; format STDOUT = first: ^<<<<< # 左边对齐,字符长度为6 $text second: ^<<<<< # 左边对齐,字符长度为6 $text third: ^<<<< # 左边对齐,字符长度为5,taobao 最后一个 o 被截断 $text . write
위의 예제 출력이 수행
first: google second: w3big third: taoba
형식의 범위를 다음과 같이
체재 | 범위의 의미 |
---|---|
@ <<< | 왼쪽 출력 |
@ >>> | 오른쪽 정렬 출력 |
@ ||| | 출력을 맞 춥니 다 |
@ ##. ## | 고정 정밀도 수 |
@ * | 여러 줄의 텍스트 |
@ 문자가 아닌 텍스트 서식을 사용하는 경우 각 행의 첫 번째 문자는 필러 캐릭터의 범위입니다.
위의 표에서, 부가 @ *의 범위, 넓은 필드 라인 멀티 예 포함한 @ 문자의 문자의 소정 개수와 동일하다 :
@###.##
그것은, 7 자 넓은 나타냅니다 사 후 소수점 전에, 소수점이.
다음 예는 다음과 같다 :
#!/usr/bin/perl format EMPLOYEE = =================================== @<<<<<<<<<<<<<<<<<<<<<< @<< $name $age @#####.## $salary =================================== . select(STDOUT); $~ = EMPLOYEE; @n = ("Ali", "w3big", "Jaffer"); @a = (20,30, 40); @s = (2000.00, 2500.00, 4000.000); $i = 0; foreach (@n){ $name = $_; $age = $a[$i]; $salary = $s[$i++]; write; }
위 예제의 출력은 다음과 같습니다
=================================== Ali 20 2000.00 =================================== =================================== w3big 30 2500.00 =================================== =================================== Jaffer 40 4000.00 ===================================
다음은 $ 인스턴스를 사용하기 간단합니다 - 형식 :
#!/usr/bin/perl $~ = "MYFORMAT"; # 指定缺省文件变量下所使用的格式 write; # 输出 $~ 所指定的格式 format MYFORMAT = # 定义格式 MYFORMAT ================================= Text # 本教程 ================================= . write;
위의 예제 출력이 수행
================================= Text # 本教程 ================================= ================================= Text # 本教程 =================================
이 경우 아래에 $ ~을 지정하지 않으면, 출력 형식은 STDOUT라고 :
#!/usr/bin/perl write; # 不指定$~的情况下会寻找名为STDOUT的格式 format STDOUT = ~用~号指定的文字不会被输出 ---------------- STDOUT格式 ---------------- .
위의 예제 출력이 수행
---------------- STDOUT格式 ----------------
우리가 보고서 헤더 정보를 추가 다음 예는 $ ^ 또는 $ FORMAT_TOP_NAME 변수를 설명합니다 :
#!/usr/bin/perl format EMPLOYEE = =================================== @<<<<<<<<<<<<<<<<<<<<<< @<< $name $age @#####.## $salary =================================== . format EMPLOYEE_TOP = =================================== Name Age =================================== . select(STDOUT); $~ = EMPLOYEE; $^ = EMPLOYEE_TOP; @n = ("Ali", "w3big", "Jaffer"); @a = (20,30, 40); @s = (2000.00, 2500.00, 4000.000); $i = 0; foreach (@n){ $name = $_; $age = $a[$i]; $salary = $s[$i++]; write; }
위 예제의 출력은 다음과 같습니다
=================================== Name Age =================================== =================================== Ali 20 2000.00 =================================== =================================== w3big 30 2500.00 =================================== =================================== Jaffer 40 4000.00 ===================================
우리는 또한 보고서는 $ % 또는 $ FORMAT_PAGE_NUMBER 설정 페이지 매김을 사용할 수 있습니다 :
#!/usr/bin/perl format EMPLOYEE = =================================== @<<<<<<<<<<<<<<<<<<<<<< @<< $name $age @#####.## $salary =================================== . # 添加分页 $% format EMPLOYEE_TOP = =================================== Name Age Page @< $% =================================== . select(STDOUT); $~ = EMPLOYEE; $^ = EMPLOYEE_TOP; @n = ("Ali", "w3big", "Jaffer"); @a = (20,30, 40); @s = (2000.00, 2500.00, 4000.000); $i = 0; foreach (@n){ $name = $_; $age = $a[$i]; $salary = $s[$i++]; write; }
위 예제의 출력은 다음과 같습니다
=================================== Name Age Page 1 =================================== =================================== Ali 20 2000.00 =================================== =================================== w3big 30 2500.00 =================================== =================================== Jaffer 40 4000.00 ===================================
기본적으로, 기능은 표준 출력 파일 STDOUT에 결과를 기입한다, 우리는 또한 다른 파일로 출력 할 수있다. 가장 쉬운 방법은 매개 변수가 같은 쓰기로 변수 파일에 있습니다 :
write(MYFILE);
MYFILE MYFILE에서라는 파일에 기본 인쇄 형식의 출력을 사용하려면 위의 코드를 작성합니다.
그러나 이것은 $ ~ 변수로 사용 된 출력 형식을 변경할 수 없다. 시스템 변수가 ~ 변수는 기본 파일 작동 $, 우리가 ~ 변화를 기본 파일 변수 $을 변경할 수 있습니다, 다음 쓰기를 호출합니다.
#!/usr/bin/perl if (open(MYFILE, ">tmp")) { $~ = "MYFORMAT"; write MYFILE; # 含文件变量的输出,此时会打印与变量同名的格式,即MYFILE。$~里指定的值被忽略。 format MYFILE = # 与文件变量同名 ================================= 输入到文件中 ================================= . close MYFILE; }
다음과 같이 성공적으로 구현 후, 우리는, tmp 파일의 내용을 볼 수 있습니다 :
$ cat tmp ================================= 输入到文件中 =================================
우리는 프로그램의 나머지 부분에 영향을주지 않고, 자신의 아이디어의 출력에 따라, 우리는 서브 프로그램을 만들 수 있도록, 현재의 내부 변수가 기본 파일을 나타내는 반환 기본 파일의 변수를 변경하도록 선택 사용할 수있다.
#!/usr/bin/perl if (open(MYFILE, ">>tmp")) { select (MYFILE); # 使得默认文件变量的打印输出到MYFILE中 $~ = "OTHER"; write; # 默认文件变量,打印到select指定的文件中,必使用$~指定的格式 OTHER format OTHER = ================================= 使用定义的格式输入到文件中 ================================= . close MYFILE; }
다음과 같이 성공적으로 구현 후, 우리는, tmp 파일의 내용을 볼 수 있습니다 :
$ cat tmp ================================= 输入到文件中 ================================= ================================= 使用定义的格式输入到文件中 =================================