Modul FileHandle dalam Perl

Modul Filehandle Dalam Perl



Pelbagai cara wujud dalam Perl untuk mencipta dan mengakses fail. Fail boleh dibuka untuk membaca, menulis atau mengemas kini dalam Perl menggunakan pengendali fail. Pengendali fail boleh digunakan dalam kaedah open() dalam format pengaturcaraan berstruktur atau format pengaturcaraan berorientasikan objek. Modul FileHandle boleh digunakan dalam Perl untuk mengisytiharkan pengendali fail sebagai objek dan menggunakan objek ini untuk membuka fail untuk mencipta atau mengakses menggunakan sifat dan kaedah yang berbeza bagi kelas 'FileHandle'. Penggunaan beberapa kaedah biasa modul FileHandle dan kaedah menggunakan modul FileHandle untuk berfungsi dengan fail dalam Perl ditunjukkan dalam tutorial ini.

Beberapa Kaedah Berguna FileHandle

Beberapa kaedah yang biasa digunakan bagi modul FileHandle adalah seperti berikut:

Kaedah Tujuan
beritahu Ia digunakan untuk mengira saiz fail dalam bait.
getc Ia digunakan untuk membaca setiap aksara kandungan fail.
mencari Ia digunakan untuk mengalihkan penunjuk fail ke kedudukan tertentu.
eof Ia menunjukkan penghujung fail.
dekat Ia digunakan untuk menutup pengendali fail yang ditakrifkan sebelum ini.

Contoh Perl FileHandle

Penggunaan modul FileHandle yang berbeza ditunjukkan dalam bahagian tutorial ini menggunakan berbilang contoh.







Contoh 1: Cipta Fail Baharu

Cipta fail Perl dengan skrip berikut yang mencipta fail baharu menggunakan modul FileHandle. Nama fail diambil daripada pengguna dan diperiksa sama ada ia wujud atau tidak. Jika fail tidak wujud, fail dibuka untuk menulis dengan mencipta objek kelas 'FileHandle' selepas menunggu 1 saat.



#!/usr/bin/perl

menggunakan ketat ;
guna amaran ;
gunakan 5.34.0 ;
gunakan FileHandle ;

#Ambil nama fail daripada pengguna untuk dibuat
cetak 'Masukkan nama fail:' ;
$f saya = <>;
chomp ( $f ) ;

#Semak sama ada fail itu sudah wujud atau tidak
jika ( -e $f )
{
#Cetak mesej jika fail itu wujud
katakan 'Fail sudah wujud.' ;
}

lain

{
#Buat objek pengendali fail
$FileHandler saya = FileHandle- > baru ;
katakan 'Menulis ke dalam fail...' ;
#Tunggu 1 saat
tidur ( 1 ) ;

#Buka fail untuk menulis
jika ( $FileHandler- > buka ( '> $f' ) )
{
#Tulis baris teks ke dalam fail
cetak $FileHandler 'Ia adalah mesej ujian. \n Ia adalah baris kedua. \n ' ;
#Tutup pengendali fail
$FileHandler- > dekat ;
}

}

Pengeluaran:



Mengikut output, fail 'test.txt' tidak wujud sebelum ini dan fail ini dibuat dengan dua baris teks. Kemudian, arahan 'kucing' dilaksanakan untuk menyemak sama ada fail berjaya dibuat dengan kandungan atau tidak:





  p1-1

Skrip dilaksanakan sekali lagi dengan nilai input yang sama dan mesej 'Fail sudah wujud' dicetak di sini kerana fail 'test.txt' dicipta sebelum ini.



  p1-2

Contoh 2: Baca Kandungan Fail

Cipta fail Perl dengan skrip berikut yang membaca kandungan fail menggunakan kelas 'FileHandle' jika fail itu wujud. Nama fail diambil daripada pengguna.

#!/usr/bin/perl

menggunakan ketat ;
guna amaran ;
gunakan 5.34.0 ;
gunakan FileHandle ;

#Ambil nama fail daripada pengguna untuk dibuat
$f saya = <>;
$f saya = ;
chomp ( $f ) ;

#Semak sama ada fail itu sudah wujud atau tidak
jika ( -e $f )
{
#Buka fail untuk membaca
$FileHandler saya = FileHandle- > baru ( ' < $f' ) ;
#Cetak kandungan fail
cetak < $FileHandler >;
#Tutup pengendali fail
tutup $FileHandler ;
}

Pengeluaran:

Kandungan fail 'test.txt' dicetak dalam output kerana ia wujud di lokasi semasa:

  p2

Contoh 3: Tambahkan Kandungan ke dalam Fail

Buat fail Perl dengan skrip berikut yang menambahkan kandungan ke dalam fail bukan kosong dan mencetak saiz fail dalam bait. Nama fail diambil daripada pengguna. Jika fail itu wujud dan mengandungi data, baris teks ditambahkan pada penghujung fail. Jika tidak, mesej dicetak.

#!/usr/bin/perl

menggunakan ketat ;
guna amaran ;
gunakan 5.34.0 ;
gunakan FileHandle ;

#Ambil nama fail daripada pengguna untuk dibuat
cetak 'Masukkan nama fail:' ;
$f saya = <>;
chomp ( $f ) ;

#Semak sama ada fail itu sudah wujud dan kosong atau tidak
jika ( -s $f )
{


$FileHandler saya = FileHandle- > baru ( ' >> $f' ) ;
#Cetak saiz fail
cetak 'Saiz fail ialah' . $FileHandler- > beritahu. 'bait. \n ' ;
katakan 'Menambahkan kandungan ke dalam fail...' ;
#Tunggu 1 saat
tidur ( 1 ) ;

#Tulis kandungan di hujung fail
cetak $FileHandler 'Ia adalah barisan baharu. \n ' ;
#Tutup pengendali fail
$FileHandler- > dekat ;
}
lain
{
katakan 'Fail tidak wujud.' ;
}

Pengeluaran:

Mengikut output, baris baharu dilampirkan pada fail 'test.txt' dan saiz fail ialah 45 bait. Kemudian, arahan 'kucing' dilaksanakan untuk menyemak sama ada kandungan ditambah dengan betul ke dalam fail atau tidak:

  p3-1

Kesimpulan


Modul FileHandle ialah salah satu pilihan Perl untuk membaca, menulis atau menambah fail. Tiga kegunaan berbeza modul ini ditunjukkan dalam tutorial ini menggunakan contoh mudah.