Guido Socher Yazar hakkinda: Guido uzun zamand�r linux hayrani ve henuz Linux Focus'a editor oldu. Bu g�nlerde evini bah�esini dezenledigi i�in olduk�a yo�un g�nler ge�iriyor. Icerik: |
�zet:
Bu yazi perl ile ilgili yazi dizisinin baslangici ve bu yaziyi anlamak icin ozel bir deneyim sahibi olmaniz gerekmiyor. Diger bazi programlama dilleri(ornegin C veya Pascal) hakkindaki bazi bilgileriniz Perl ile calismanizi kolaylastirabilir.
Perl Larrt Wall tarafindan gelistirilmis bir programlama dilidir. Program kodlari perl kullanilarak direkt olarak calistirilabilir, herhangi bir derleme islemine gerek yoktur. Bu perl programi genelde /usr/bin/perl icerisine yuklenir. Perl temelde awk ve sed gibi klasik unix programlarina oldukca benzer ancak perl bunlardan aldigi temelleri oldukca ileri goturmustur. Bugun perl ile nesneye yonelik programlama yapmak ve grafiker kullanici arayuzleri olusturmak da mumkundur. Perl�n yetenekleri k�t�phanelerle dahada geni�letilebilir. Bu k�t�phanelerin �o�u perl ar�ivi olan CPAN da bulunabilir.Bu ilk yaz� �leri d�zey konular� i�ermeyecek. Bu konulara daha sonraki yaz�larda de�inmeyi tercih ediyorum.
Perl �e�itli h�nerleri ile �ok kullan��l� evrensel programlama arac�d�r.
Asagidaki programi my1stprg ismi ile kaydedin ve chmod 755 my1stprg komutu ile calistirilabilir hale getirin. Programi calistirip neler oldugunu gorun.
#!/usr/bin/perl -w
print "What is your name?\n"; $name=<STDIN>; #remove the new-line character: chomp($name); $len=length($name); print "\nHello $name! Your name is $len characters long\n"; |
Koda bakalim. Birinci satir yorum degildir.Bu tur satirlar unixin tipik bir �zelli�i olarak #! isareti ile baslar ve i�letim sistemine bu dosya ile ne yap�laca��n� belirtir. �lk sat�rdan sonra # karakteri ile ba�layan t�m sat�rlar yorum sat�rlar�d�r(4. sat�ra bak�n�z).Ayr�ca b�t�n ifadelerin noktal� virg�l ile bitti�ini g�rmekteyiz.De�i�kenler dolar i�areti ile ba�lar($).Perl de�i�kenleri dizi(string), tamsay� ve ondal�kl� say� de�erleri alabilirler. The data gets converted automatically to the right type dependent on the context in which a variable is used. $-de�i�kenlerine scalar de�i�kenler denir. Perl, diziler($ yerine @ ile ba�lar) ve kar���k tablolarda($yerine % ile ba�lar) i�erir.Bu t�r de�i�kenler ilerleyen yaz�larda ele al�nacak.
Ikinci satirdaki print fonksiyonu yazi dizisini standart ciktiya goruntuler.Bu komut kabuk programlamadaki echo komutuna karsi gelir ve eger dizi " " karakterleri arasinda ise degiskenler degerleri ile ciktida goruntulenir. ` ` karakterleri aras�ndaki degi�kenler degerlerine �evrilmez ve \ \ karakterleri $ gibi �zel karakterleri aktarmak i�in kullan�labilir.A�a��da bir �rnek yer almaktad�r.
#!/usr/bin/perl -w
$name="joe"; print "1 $name\n"; print '2 ', $name , "\n"; print '3 ', '$name',"\n"; print "4 \"$name\"\n"; print "5 \$name\n"; print "6 \"\$name\"\n"; |
kayna��n �retti�i:
1 joe
2 joe 3 $name 4 "joe" 5 $name 6 "$name" |
Programimiza geri donelim.$name=<STDIN>; sat�r� ile kullan�c� bilgi girmesine imkan sa�lan�r ve enter tu�una basmas� beklenir.Bu sat�rdan sonra kullan�c�n�n girdi�i bilgi $name de�i�keni taraf�ndan tutulur. chomp($name); komutu yeni sat�r karakterini $name de�i�keninden kald�r�r.Son olarak length fonksiyonu $name de�i�kenindeki harfleri sayar.
Ne yaz�k ki program�m�z�n bir kusuru var.Kullan�c� isminin yerine tab veya bo�luk karakteri girerse ne olacak?O da say�lacak.Bunu nas�l ayarlayabiliriz?
�htiyac�m�z olan, $name de�i�kenindeki bo�luk karakterlerini kald�ran bir fonksiyon olan replace fonksiyonu.Perl is very good in manipulating text strings and offers exactly this. [ \t] bo�luk veya tab tu�lar�n� e�leyen bir ifadedir. Perl de bu daha k�sa b�r �fade olan \s �le de yap�lab�l�r.Daha fazla b�lg� i�in(uygun �fadeler i�in okunabilir). The perl substitute command takes a regular expression and has the syntax: $name=~ s/regexp/replacement/g; If we leave the replacement string empty then all occurrences where the regular expression fits will be replaced with nothing. Now our program looks like this:
#!/usr/bin/perl -w
print "What is your name?\n"; $name=<STDIN>; #remove the new-line character: chomp($name); print "\nHello $name!"; #remove spaces from the string: $name=~s/\s//g; $len=length($name); print " Your name is $len characters long\n"; |
Bu program kontrol ifadeleri(d�ng�ler ve if ifadeleri) i�ermedi�inden �ok kullan��l� bir program de�il fakat basit bir fikir veriyor.Bu seri devam edecek ve daha karma��k programlarla gelecek.
Ayr�ca "man perl" ve "man perlfunc" komutlar � da mevcut fonksiyonlar� g�rmek i�in kullan�labilir. T�m bunlar�n yan�nda O'Reilly nin kitab� olan ``learn�ng perl`` gibi kitaplar yard�m� ilede perl ��renebilirsiniz.
Webpages
maintained by the LinuxFocus Editor team
� Guido Socher LinuxFocus 1999 |
|
1999-09-24, generated by lfparser version 0.7