Perl’de Dosya ve Dizin İşlemleri I
Bildiğiniz gibi perl dili, üretiliş amacı olarak bir okuma ve rapor etme dili. O zaman bu dilin, dosya arama, bulma, okuma, silme ve dahilinde dizin işlemlerinde çok ileri seviyeye ulaşmış olması düşünülmelidir. Ve netenekim de öyledir. Perl dili dosya işlemlerinde, çok ileridir ve her zaman ki kolaylığı ile bize dosya işlemleri yapmamızı sunar.
Perl’de bir dizindeki dosyaları okuma için, önce dizini ele almak gerekir. Bunun için ise opendir() fonksiyonu kullanılır. Opendir() fonksiyonun kullanım şekli opendir(DIZIN_TUTAMACI,”$dizin_yolu”) şeklindedir.
opendir(DIZIN,”$dizin_yolu”);
Bu dizinin okumak için açılmasını sağlar. Daha sonra dizindeki dosyalar okunmak için tek tek önümüze gelecektir. Ancak bunun için readdir() fonksiyonuna ihtiyacımız olacak. Readdir() fonksiyonu, opendir() ile açılan bir dizindeki dosyaları tek tek okuyarak adlarını bize geri gönderir. Readdir() fonksiyonun kullanım şekli, readdir(DIZIN_TUTAMACI) şeklindedir.
while($dosya = readdir(DIZIN))
Yukarıdaki örnekte, dizin okunurken dosya isimleri tek tek ele alınıyor ve $dosya değişkenine atanıyor. Daha sonra ise yapmak istediğimiz işlemleri yapabiliriz. Örneğin, okuduğumuz dosya isimlerini bir diziye atamak gibi.
push(@dosyalar,$dosya);
Ancak okunan bir dizinin tekrar kapatılmasını, Perl açısından bir sorun yaratmasa’da memory ya da Perl hatacısı tarafından sorun yaratabilir. Bu sebeple okunan bir dizinin fonksiyon sonunda kapatılması gerekir. Bunun için perl’de closedir() fonksiyonu vardır. Kullanım şekli: closedir(DIZIN_TUTAMACI) şeklindedir.
closedir(DIZIN);
Peki, biz bir dizin yaratmak ya da silmek istersek durum nedir? Perl Un*x kökenli bir dil olduğu için, dizin silme işlemleride windows’a göre biraz değişiktir. Örneğin Perl’de bir dizini silmek için rmdir() fonksiyonu kullanılır. Bu fonksiyon rmdir($dizin) şeklinde bir kullanıma sahiptir. Ancak bu fonksiyon eğer dizinin içinde dosya mevcut ise, hata gönderir.
rmdir(”$bos_dizin”);
Bunun için öncelikle bir dizindeki dosyaları silmek, daha sonra dizini silmek gereklidir.
Bir dizin yaratmak için ise, gene Un*x kökenli bir ada sahip olan mkdir() fonksiyonu kullanılır. mkdir() fonksiyonu mkdir(”$dizin_adi”) şeklinde bir kullanıma sahiptir.
mkdir(”$dizin_yolu/deneme”);
Tabii ki Perl’de dizin işlemleri ile ilgili bu kadarcık fonksiyon yok. Bunun yanında windows sistemlerede çalışmayan ancak un*x tabanlı sistemlerde çalışan “telldir()” gibi fonksiyonlarıda mevcut.
Gelecek ay, bu yazının devamı olarak dosya işlemlerini göreceğiz. O zamana kadar sevgi ile kalın…
Benzer Yazılar
Yorum Yap
XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

13 Ağustos 2001 |


Etiketler:


Henüz yorum yapılmamış.