Home Map Index Search News Archives Links About LF
[Top bar]
[Bottom bar]
[Photo of the Author]
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:

Perl bölüm 1

Çeviri : Uğur Tekin

[Illustration]

Ö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 nedir?

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.


 

Basit bir program

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.


 

Belgeler

Bu seri ile perlü adım adım öğreneceksiniz.Fakat siz  şu anda reference manual (perlref-5.004.1.tar.gz)  kaynağını kullanabilirsiniz. README dosyasında çeşitli kaynaklar bulabilirsiniz.

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