output diformat perl
Perl adalah data bahasa pengolahan teks sangat kuat.
Perl dapat digunakan untuk menentukan format template yang, dan kemudian menggunakan output menulis data dengan template yang ditetapkan.
Format perl didefinisikan sintaks adalah sebagai berikut:
format FormatName = fieldline value_one, value_two, value_three fieldline value_one, value_two .
parameter analisis:
- FormatName: format nama.
- fieldline: format baris, format yang digunakan untuk menentukan output line, mirip dengan @ the, ^, <,>, | karakter tersebut.
- value_one, value_two ......: baris data, digunakan untuk memasukkan nilai-nilai ke format barisan depan, semua variabel perl.
- : Simbol End.
Berikut ini adalah contoh sederhana diformat:
#!/usr/bin/perl $text = "google w3big taobao"; format STDOUT = first: ^<<<<< # 左边对齐,字符长度为6 $text second: ^<<<<< # 左边对齐,字符长度为6 $text third: ^<<<< # 左边对齐,字符长度为5,taobao 最后一个 o 被截断 $text . write
Lakukan contoh di atas output:
first: google second: w3big third: taoba
Format baris (baris grafis) sintaks
- Format garis @ atau ^ di awal, garis-garis ini tidak mengalami bentuk substitusi variabel.
- @ Lapangan (tidak harus bingung dengan array penanda @) adalah bidang biasa.
- @, <,>, ^ Setelah | panjang menentukan panjang lapangan jika variabel melebihi panjang yang ditentukan, maka akan dipotong.
- <,>, | Juga mewakili, kiri-blok, kanan-blok, pusat selaras.
- ^ Fields untuk multi-line blok teks mengisi.
Format Rentang
Berbagai format, sebagai berikut:
format | Arti kisaran |
---|---|
@ <<< | Output meninggalkan |
@ >>> | Benar-dibenarkan keluaran |
@ ||| | menyelaraskan keluaran |
@ ##. ## | nomor presisi tetap |
@ * | Beberapa baris teks |
Karakter pertama dari setiap baris adalah berbagai karakter filler bila menggunakan karakter @, bukan format teks.
Pada tabel di atas, selain untuk multi-line @ * jangkauan, lebar lapangan adalah sama dengan jumlah tertentu karakter dalam karakter @, termasuk, misalnya:
@###.##
Ini merupakan tujuh karakter lebar, setelah empat sebelum titik desimal, titik desimal dua.
Contohnya adalah sebagai berikut:
#!/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; }
Contoh di atas output:
=================================== Ali 20 2000.00 =================================== =================================== w3big 30 2500.00 =================================== =================================== Jaffer 40 4000.00 ===================================
Format variabel
- $ ~ ($ FORMAT_NAME): Format Nama $ ^ ($ FORMAT_TOP_NAME): Nama format saat disimpan dalam header
- $% ($ FORMAT_PAGE_NUMBER): saat nomor halaman keluaran
- $ = ($ FORMAT_LINES_PER_PAGE): jumlah baris pada halaman
- $ | ($ FORMAT_AUTOFLUSH): apakah akan secara otomatis menyiram output memori penyangga
- $ ^ L ($ FORMAT_FORMFEED): pada setiap halaman (kecuali halaman pertama) sundulan diperlukan sebelum output string disimpan dalam
Berikut ini adalah sederhana untuk menggunakan $ misalnya - Format:
#!/usr/bin/perl $~ = "MYFORMAT"; # 指定缺省文件变量下所使用的格式 write; # 输出 $~ 所指定的格式 format MYFORMAT = # 定义格式 MYFORMAT ================================= Text # 本教程 ================================= . write;
Lakukan contoh di atas output:
================================= Text # 本教程 ================================= ================================= Text # 本教程 =================================
Jika Anda tidak menentukan $ ~ bawah kasus ini, format output disebut STDOUT:
#!/usr/bin/perl write; # 不指定$~的情况下会寻找名为STDOUT的格式 format STDOUT = ~用~号指定的文字不会被输出 ---------------- STDOUT格式 ---------------- .
Lakukan contoh di atas output:
---------------- STDOUT格式 ----------------
mengikuti contoh kita menambahkan informasi laporan kepala untuk menunjukkan $ ^ atau $ FORMAT_TOP_NAME variabel:
#!/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; }
Contoh di atas output:
=================================== Name Age =================================== =================================== Ali 20 2000.00 =================================== =================================== w3big 30 2500.00 =================================== =================================== Jaffer 40 4000.00 ===================================
Kita juga bisa menggunakan $% atau $ FORMAT_PAGE_NUMBER set pagination untuk laporan:
#!/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; }
Contoh di atas output:
=================================== Name Age Page 1 =================================== =================================== Ali 20 2000.00 =================================== =================================== w3big 30 2500.00 =================================== =================================== Jaffer 40 4000.00 ===================================
Output ke file lain
Secara default, fungsi akan menulis hasil dengan standar STDOUT file output, kami juga dapat membuat menampilkan hasilnya ke file lain. Cara termudah adalah dengan mengajukan variabel sebagai parameter untuk menulis, seperti:
write(MYFILE);
Menulis kode di atas menggunakan format output cetak default untuk file bernama MYFILE MYFILE di.
Tapi ini tidak dapat digunakan untuk mengubah format cetak yang digunakan oleh variabel $ ~. variabel sistem $ ~ variabel bekerja hanya untuk file default, kita bisa mengubah file default variabel $ ~ perubahan, kemudian memanggil menulis.
#!/usr/bin/perl if (open(MYFILE, ">tmp")) { $~ = "MYFORMAT"; write MYFILE; # 含文件变量的输出,此时会打印与变量同名的格式,即MYFILE。$~里指定的值被忽略。 format MYFILE = # 与文件变量同名 ================================= 输入到文件中 ================================= . close MYFILE; }
Setelah keberhasilan pelaksanaan, kita dapat melihat isi dari file tmp, sebagai berikut:
$ cat tmp ================================= 输入到文件中 =================================
Kita dapat menggunakan pilih untuk mengubah variabel file default, yang mengembalikan variabel internal saat ini menunjukkan file default, sehingga kita dapat membuat subprogram, menurut output ide mereka sendiri, tanpa mempengaruhi sisa program.
#!/usr/bin/perl if (open(MYFILE, ">>tmp")) { select (MYFILE); # 使得默认文件变量的打印输出到MYFILE中 $~ = "OTHER"; write; # 默认文件变量,打印到select指定的文件中,必使用$~指定的格式 OTHER format OTHER = ================================= 使用定义的格式输入到文件中 ================================= . close MYFILE; }
Setelah keberhasilan pelaksanaan, kita dapat melihat isi dari file tmp, sebagai berikut:
$ cat tmp ================================= 输入到文件中 ================================= ================================= 使用定义的格式输入到文件中 =================================