|
Bölüm 1: Başlangıç Perl scriptlerinizi kendi bilgisayarınızda istediğiniz text editörü ile (Notepad, SimpleText vb.) ya da UNIX'te yazabilirsiniz. UNIX kullanıyorsanız pico'yu deneyin. Basit ve kullanımı kolay bir text editörü. UNIX komut satırında pico <dosya adı> yazarak yeni bir dosya ya da varolan bir dosyayı açabilirsiniz. Pico ile ilgili daha fazla bilgi almak için man pico yazınız. Scriptlerinizi kendi makinenizde yazıp FTP ile gönderecekseniz dikkat etmeniz gereken husus binary değil ASCII olarak göndermek. CuteFTP kullanıyorsanız sorun yok. Ama WS FTP programı Perl dosyaları için genelde ASCII değil binary kullanıyor. Scriptlerinizi server'ınızda CGI scriptlerini çalıştırabileceğiniz dizine (public_html ya da /home/httpd/cgi-bin olabilir) upload etmelisiniz. Başka bir dizine upload etmişseniz daha sonra da taşıma işlemini yapabilirsiniz. UNIX'te taşıma işlemini şu komutla yapabilirsiniz:
Scriptinizi gerekli dizine taşıdıktan sonra bu dosyayı "çalıştırılabilir" hale getirmeniz gerekir. Bunun için kullanmanız gereken komut:
Bu komut dosyanın sizin tarafınızdan okunabilir, yazılabilir ve çalıştırılabilir, diğer bütün kullanıcılar tarafından da okunabilir ve çalıştırılabilir hale getirilmesini sağlar. Aynı işi çoğu FTP programı ile yapabilirsiniz. Fakat dikkat etmeniz gereken kısım bütün kullanıcılara okuma ve çalıştırma hakkı vermek ve tabi ki sadece kendinize yazma hakkı vermek. Son bir not: UNIX ve Perl'de büyük küçük harf ayrımı vardır. Yani UNIX'te "perl" ile "PERL" aynı şey değildir. Bu yüzden Caps Lock tuşunuza dikkat edin :)
Perl Scriptinin Temelleri
Bir HTML dosyasının yapısında <head> ve <body> etiketlerinin mutlaka bulunması gerektiği gibi bir Perl scriptinin ilk satırında
satırının mutlaka bulunması gerekir. Bu satır server'a bu dosyanın bir Perl scripti olduğunu ve Perl'ün nerede olduğunu söyler. Bu satır sisteminizde Perl'ün nerede olduğuna bağlı olarak değişebilir. Bunu öğrenmenin en emin yolu which perl ya da whereis perl komutunu kullanmaktır. Perl sisteminizde kurulu ise Perl'ün hangi dizinde olduğu yazacaktır.
Server'a Perl'ün yerini tanıttıktan sonra Perl kodlarınızı yazabilirsiniz. Hatırlamanız gereken önemli bir konu Perl'de büyük küçük harf ayrımının olduğu. Yani Perl için "x" ile "X" aynı şeyler değildir. Ayrıca çoğu Perl kodunun sonunda noktalı virgül (;) kullanmalısınız (Bazı döngü ve özel yapılar hariç).
Şimdi birlikte ilk scriptimizi yazalım. Yeni bir dosya oluşturun ve şunları yazın. (Daha iyi aklınızda kalması açısından Kopyala - Yapıştır yöntemini kullanmamanızı tavsiye ederim.)
Bu dosyayı "ilkscript.pl" adıyla kaydedin ve UNIX komut satırında şunu yazın:
Bu komut dosyanın erişim yetkilerini değiştirerek onu çalıştırılabileceğiniz hale getirir. Bunu her yeni script yazışınızda yapmanız gerekir. Fakat varolan bir dosya üzerinde değişiklik yaptığınız zaman bu komutu vermenize gerek yoktur.
Şimdi, yazdığınız scripti çalıştırmanız için vermeniz gereken komut:
Eğer herşey yolunda gitmişse ekranda "Merhaba" yazması gerekir.
Eğer scriptiniz çalışmazsa şunları kontrol edin:
1. Scriptinizi ASCII olarak upload ettiniz mi?
2. Scriptinizin ilk satırı #!/usr/bin/perl mü?
3. Perl'ün yeri gerçekten #!/usr/bin/perl mü yoksa başka bir dizinde mi? Perl'ün nerede olduğunu which perl ya da whereis perl yazarak bulabilirsiniz.
CGI Scriptinin Temelleri
CGI programları aynı zamanda birer Perl scriptidir. Fakat aralarındaki önemli bir fark CGI programlarının genelde bir web sayfası üretmesidir. Örneğin bir form gönderildikten sonra mesajın gönderildiğine dair yeni bir sayfa açılır. Eğer yazdığınız script bir HTML sayfası oluşturacaksa herhangi bir yazı yazdırmadan önce
satırını mutlaka yazmalısınız. Unutulması ihtimaline karşı en başa yazılması daha iyi olur (#!/usr/bin/perl satırından sonra tabi).
Bu satır web browser'ınıza kendisine gönderilecek bilginin bir HTML sayfası olduğunu söyler. Eğer bu satırı yazmayı unutursanız ya da bu satırdan önce başka birşey yazdırırsanız browser <Internal Server Error> (Dahili Server Hatası) verir.
Şimdi yaptığımız Perl scriptini biraz değiştirelim ve web sayfası gösteren bir CGI scriptine çevirelim.
Önce dosyanın uzantısını .cgi olarak değiştirelim. UNIX'te bunu
komutunu vererek yapabilirsiniz. Daha sonra bu dosyanın içeriğini şu şekilde değiştirin:
print "Content-type:text/html\n\n";
print "<html><head><title>Deneme Sayfası</title></head>\n";
Eğer scriptinizdeki değişiklikleri UNIX üzerinde yapmışsanız erişim yetkilerini tekrar düzenlemenize gerek yoktur. Ama kendi bilgisayarınızda yazıp upload etmişseniz chmod 755 ilkcgi.cgi komutunu verip erişim yetkilerini değiştirin ve ./ilkcgi.cgi komutu ile scriptinizi çalıştırın. Ekrana HTML kodları gelecektir. AMA eğer yazdığınız kodlarda bir hata varsa o zaman ekranda hatanın kaçıncı satırda olduğu yazar. Bu da özellikle uzun ve karmaşık scriptler yazarken olası hatayı düzeltmemizde bize oldukça kolaylık sağlar.
Şimdi de browser'ınızın adres satırına tam adresini yazarak scriptinizi çağırın. Browser'ınızda "Merhaba" yazdığını göreceksiniz.
Scriptinizin çalışmamasının nedeni şunlar olabilir:
1. Eğer karşınıza "Merhaba" yerine Perl kodları çıkmışsa scriptin uzantısını .cgi olatak değiştirmemiş olabilirsiniz. Ya da scriptin bulunduğu dizin CGI programlarını çalıştıracak şekilde ayarlanmamıştır (CGI scriptlerinizi hangi dizinde çalıştırabileceğinizi server'ınızın yöneticisine sormalısınız).
2. Browser'ınız "Internal Server Error" hatası veriyorsa scriptinizi ./ilkcgi.cgi komutu ile çalıştırın. Ekranda hatanın nerede olduğu yazacaktır.
Yukarıdaki scripti şu şekilde yazarsak her satırda print yazmaktan kurtuluruz:
print "Content-type:text/html\n\n";
print <<HTMLSonu;
HTMLSonu
print <<HTMLSonu; satırında << ile HtmlSonu arasında boşluk olmadığına dikkat edin.
Bu sayfada Perl kodları, daha anlaşılır olması açısından satır girintileri kullanarak yazılmıştır. Perl kodlarını yazarken mutlaka ilk sütundan başlayarak yazılmalıdır. Özellikle HTMLSonu satırından önce kesinlikle boşluk bırakılmamalıdır. Eğer bırakılırsa scriptiniz çalışmaz.
HTML kodlarını bu yöntemle yazdırırsak aşağıdaki örnekte olduğu gibi print komutunu kullanırken iç içe çift tırnak (") karakteri kullanmak zorunda olduğumuz zaman çift tırnaktan önce ters bölü (\) karakteri yazmak zorunda kalmayız.
print komutunda iç içe tırnak karakterleri kullanmak için yukarıdaki gibi çift tırnaktan önce ters bölü karakterini yazmak zorundayız.
|
||||