Perl’de Dosya ve Dizin İşlemleri II
Geçen ay hatırlayacağınız üzere, Perl ile dizin işlemleri yapmış ve bir dizini okumayı, silmeyi ve yaratmayı öğrenmiştik.
Ancak Perl'ün elbette dosya işlemlerinde de, hızı ve kolaylığı kabul gören bir gerçeklik. Örneğin perl de bir dosya açılmak istenirse open() fonksiyonu yeterlidir.
Open() fonksiyonu, bir kaç değişik paremetre alabilir. Ancak genelde 4 parametre ile kullanılır.
< okumak
> yeniden yaratmak ya da yaratmak
>> ekleme yapmak ya da yaratmak.
Bir de bu parametrelerden hiçbiri kullanılmadığında okumak anlamına geliyor ve perl dosyayı okuyor. Örneğin bir dosya okumak için açılmak istendiğinde:
open(DOSYA,"$dizin/$dosya"); ya da
open(DOSYA,"<$dizin/$dosya");
şeklinde kullanılabilir. Dosyaların açılış şekli ise oldukça önemlidir. Zira büyük veri kayıpları, küçük bir paremetre yanlışlığından meydana gelmektedir. Bu sebeple hangi parametrenin ne yapacağı iyice düşünülerek atanmalıdır. Örneğin ">>" parametresi, bir dosyaya eklemek yapmak için kullanır. Bu parametre ile dosya açıldığında, Perl direk dosyanın sonuna konumlanır ve yazma/ekleme işlemine son satırdan başlar. Ancak eğer o isimde bir dosya yoksa, bu parametre ile verdiğimiz isimde bir dosya yaratılmasını sağlarız.
En çok dikkat etmemiz gerekn konulardan biride ">" parametresidir. Bu parametre, bir dosyayı yaratır. Ancak eğer aynı dizinde aynı isimde bir dosyanız varsa, dosyanız daki bütün verilerinizi kaybedersiniz.
Perl'de bir dosya okumak için çok çeşitli yollar vardır. Örneğin bir dosya satır satır da okunabilir, bir bütün halinde, de...
$satir = <FILE> #Sadece tek satırı okur ve değerini $satir değişkenine atar
@satirlar = <FILE> #Bütün dosyayı okur ve her satırı @satirlar dizisinin bir elemanı olarak atar.
Her dosyayı okuduğumuzda dosyayaı kapatmak mantıklı olmayacağında, satır satır okuma işleminde, bir döngü kullanmak daha mantıklıdır:
Bu şekilde bir okuma yaptığınızda satırları tek tek okumanız mümkün olabileceği gibi aynı zamanda, bir diziye atamak gibi işlemleride yapabilirsiniz. Kontrolü sevenler için bu yöntem daha iyi gibi görünüyor. :-)Ve perl de açılan bir dosya kapatılmak istenirse close() fonksiyonu kullanılır. Kullanım şekli close(DOSYA_TUTAMACI) şeklindedir:
close(DOSYA);
Peki ama dosyalar nasıl silinecek?
Perl'de dosyalar unlink() fonskiyonu ile silinebilir. Kullanım şekli unlik(DIZIN/DOSYA) şeklindedir:
unlink($dizin/$dosya) or die("Dosya silinemedi",$!);
Perlde dizin ve dosya işlemleri için bu kadar fonksiyon yeterli. Zira, daha değişik okuma/silme/yazma fonksiyonları kafa karıştırmaktan öteye gidememektedir.
Geçen ay bir de dizin silerken içinin boş olacağından bahsetmiştik. O zaman bu kadar bilgi ile, bir dizininin önce içini boşaltan, sonra ise silen bir program yazalım.
Yazdır
| 164 Görüntülenme | Kategori: Diğer Diller |
Geri İzleme
Etiketler: Perl, sistem yönetimi, sistem komutlarıBenzer Yazılar
Yorum Yap
XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

14 Ağustos 2001 |



Henüz yorum yapılmamış.