FileHandle'ın Bazı Yararlı Yöntemleri
FileHandle modülünün yaygın olarak kullanılan bazı yöntemleri şunlardır:
Yöntem | Amaç |
söylemek | Dosyanın boyutunu bayt cinsinden saymak için kullanılır. |
getc | Dosya içeriğinin her karakterini okumak için kullanılır. |
aramak | Dosya işaretçisini belirli bir konuma taşımak için kullanılır. |
eof | Dosyanın sonunu belirtir. |
kapalı | Daha önce tanımlanan dosya işleyicisini kapatmak için kullanılır. |
Perl FileHandle örnekleri
Eğitimin bu bölümünde FileHandle modülünün farklı kullanımları birden fazla örnek kullanılarak gösterilmektedir.
Örnek 1: Yeni Bir Dosya Oluşturun
FileHandle modülünü kullanarak yeni bir dosya oluşturan aşağıdaki komut dosyasıyla bir Perl dosyası oluşturun. Kullanıcıdan bir dosya adı alınarak var olup olmadığı kontrol edilir. Eğer dosya yoksa 1 saniye bekledikten sonra “FileHandle” sınıfına ait bir nesne oluşturularak dosya yazmaya açılır.
#!/usr/bin/perl
katı kullan ;
kullanmak uyarılar ;
5.34.0'ı kullan ;
FileHandle'ı kullan ;
#Oluşturmak için kullanıcıdan dosya adını al
Yazdır 'Dosya adını girin:' ;
benim $f = <>;
parçalamak ( $f ) ;
#Dosyanın zaten mevcut olup olmadığını kontrol edin
eğer ( -e $f )
{
#Dosya mevcutsa bir mesaj yazdır
söylemek 'Dosya zaten mevcut.' ;
}
başka
{
#Dosya işleyici nesnesi oluştur
benim $FileHandler'ım = DosyaHandle- > yeni ;
söylemek 'Dosyaya yazılıyor...' ;
#1 saniye bekle
uyumak ( 1 ) ;
#Dosyayı yazmak için aç
eğer ( $FileHandler- > açık ( '> $f' ) )
{
#Dosyaya bir satır metin yaz
Yazdır $FileHandler 'Bu bir deneme mesajıdır. \N Bu ikinci satırdır. \N ' ;
#Dosya işleyicisini kapat
$FileHandler- > kapalı ;
}
}
Çıktı:
Çıktıya göre “test.txt” dosyası daha önce mevcut değildi ve bu dosya iki satırlık metinden oluşturulmuştu. Daha sonra dosyanın içerikle başarılı bir şekilde oluşturulup oluşturulmadığını kontrol etmek için “cat” komutu çalıştırılır:
Betik aynı giriş değeriyle tekrar çalıştırılır ve “test.txt” dosyası daha önce oluşturulduğu için “Dosya zaten mevcut” mesajı buraya yazdırılır.
Örnek 2: Dosyanın İçeriğini Okuyun
Dosya mevcutsa “FileHandle” sınıfını kullanarak dosyanın içeriğini okuyan aşağıdaki komut dosyasıyla bir Perl dosyası oluşturun. Dosya adı kullanıcıdan alınır.
#!/usr/bin/perlkatı kullan ;
kullanmak uyarılar ;
5.34.0'ı kullan ;
FileHandle'ı kullan ;
#Oluşturmak için kullanıcıdan dosya adını al
benim $f = <>;
benim $f = ;
parçalamak ( $f ) ;
#Dosyanın zaten mevcut olup olmadığını kontrol edin
eğer ( -e $f )
{
#Dosyayı okumak için aç
benim $FileHandler'ım = DosyaHandle- > yeni ( ' < $f' ) ;
#Dosya içeriğini yazdır
Yazdır < $FileHandler >;
#Dosya işleyicisini kapat
$FileHandler'ı kapat ;
}
Çıktı:
“Test.txt” dosyasının içeriği, geçerli konumda mevcut olduğundan çıktıya yazdırılır:
Örnek 3: Dosyaya İçerik Ekleme
İçeriği boş olmayan bir dosyaya ekleyen aşağıdaki komut dosyasıyla bir Perl dosyası oluşturun ve dosyanın boyutunu bayt cinsinden yazdırın. Dosya adı kullanıcıdan alınır. Dosya mevcutsa ve verileri içeriyorsa dosyanın sonuna bir satır metin eklenir. Aksi halde bir mesaj yazdırılır.
#!/usr/bin/perlkatı kullan ;
kullanmak uyarılar ;
5.34.0'ı kullan ;
FileHandle'ı kullan ;
#Oluşturmak için kullanıcıdan dosya adını al
Yazdır 'Dosya adını girin:' ;
benim $f = <>;
parçalamak ( $f ) ;
#Dosyanın zaten mevcut olup olmadığını ve boş olup olmadığını kontrol edin
eğer ( -s $f )
{
benim $FileHandler'ım = DosyaHandle- > yeni ( ' >> $f' ) ;
#Dosya boyutunu yazdır
Yazdır 'Dosyanın boyutu:' . $FileHandler- > söylemek. ' bayt. \N ' ;
söylemek 'Dosyaya içerik ekleniyor...' ;
#1 saniye bekle
uyumak ( 1 ) ;
#İçeriği dosyanın sonuna yaz
Yazdır $FileHandler 'Bu yeni bir hat. \N ' ;
#Dosya işleyicisini kapat
$FileHandler- > kapalı ;
}
başka
{
söylemek 'Dosya bulunmuyor.' ;
}
Çıktı:
Çıktıya göre “test.txt” dosyasına yeni bir satır ekleniyor ve dosyanın boyutu 45 byte oluyor. Daha sonra içeriğin dosyaya düzgün şekilde eklenip eklenmediğini kontrol etmek için “cat” komutu çalıştırılır:
Çözüm
FileHandle modülü Perl'ün dosyaları okuma, yazma veya ekleme seçeneklerinden biridir. Bu eğitimde bu modülün üç farklı kullanımı basit örnekler kullanılarak gösterilmektedir.