Perl'de FileHandle Modülü

Perl De Filehandle Modulu



Dosyaları oluşturmak ve dosyalara erişmek için Perl'de birden fazla yol vardır. Bir dosya, Perl'de bir dosya işleyicisi kullanılarak okumak, yazmak veya güncellemek için açılabilir. Dosya işleyicisi, open() yönteminde yapılandırılmış programlama formatında veya nesne yönelimli programlama formatında kullanılabilir. FileHandle modülü, Perl'de dosya işleyicisini bir nesne olarak bildirmek ve bu nesneyi, “FileHandle” sınıfının farklı özelliklerini ve yöntemlerini kullanarak bir dosya oluşturmak veya bu dosyaya erişmek amacıyla bir dosyayı açmak için kullanmak için kullanılabilir. FileHandle modülünün bazı yaygın yöntemlerinin kullanımı ve Perl'de dosyayla çalışmak için FileHandle modülünü kullanma yöntemleri bu eğitimde gösterilmektedir.

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:





  p1-1

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.



  s1-2

Ö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/perl

katı 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:

  p2

Ö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/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ı 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:

  s3-1

Çö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.