|
|
|
|
CGI/Perl Dersleri Perl ile Yazı Yazdırma
Perl ile düzyazı ya da html formatında yazı yazdırma :
Perl dili ile düzyazı ya da html formatında yazı yazdırıp ekrana çıktı
verebilmek için print ""; komutu kullanılır fakat perl ile yazdırırken
dikkat etmeniz gereken bazı noktalar vardır. Bazı karakterler perl için
özel anlam taşır bu karakterleri düzyazı halinde kullanırken perl'ün bu
karakterleri dikkate almamasını sağlamak amacıyla bu karakterlerin
önlerine ters slash (\) koymanız gerekir. Bu özel karakterler şunlardır:
Noktalı virgül (;) : Perl yorumlayıcısı döküman içinde noktalı virgül
görünce o satırın ve komutun bittiğini zanneder ve yeni bir komut
bekler. Bu yüzden düzyazı ya da html yazdırırken noktalı virgül
kullanmadan önce ters slash (\) kullanmanız gerekir aksi taktirde dosya
çalışmaz ve hatanın nerden kaynaklandığını bulmak baya bir zamanınızı
alabilir.
Dollar ($) ve And (&) simgeleri : Bu iki simge Perl için özel anlam
ifade eder. Bu anlamların ne olduğundan ve fonksiyonlarından
bahsedeceğim şimdilik bilmemiz gereken bu iki simgenin düzyazı ya da
html formatında yazdırılabilmesi için (tabii fonksiyonuna uygun
kullanılmıyorsa) önüne ters slash (\) koymanız gerektiğidir.
Çift tırnak (") : Çift tırnak Perl için özel anlam ifade eder. Perl çift
tırnak görünce bir komutun başladığını ya da bittiğini anlar. Eğer
düzyazı ya da html içerisinde çift tırnak kullanacaksanız önüne ters
slash (\) koyarak perl'ün çift tırnağı görmezden gelmesini
sağlayabilirsiniz.
At (@) : @ işareti de perl için bir anlam ifade eder. Perl bu işareti
görünce ilişkili dizi (hash) değişkenleri arar ve bulamadığı taktirde
hata verir. Eğer düzyazı içinde bu işareti kullanacaksanız ters slash
(\) işaretinden sonra kullanmalısınız.
Yüzde (%) : Yüzde (%) işareti perl için hash dizi değişkeni başlangıcı
anlamına gelir yani özel bir anlam ifade eder. Eğer düzyazı olarak
ekrana yazdırmak istiyorsanız önüne ters slash (\) koymanız gerekir.
Eğer düzyazı içerisinde ters slash (\) işareti kullanmanız gerekiyorsa 3
tane yanyana ters slash kullanmanız gerekir.
Perl için özel anlam ifade eden simgelerin önüne sadece düzyazı olarak
yazdıracaksanız ters slash (\) koymalısınız.
Örnek : #!/usr/bin/perl
# duzyazi.cgi
print "Content-type:text/html\n\n";
print "<html>";
print "<head>";
print "<title>Düzyazı Dosyası</title>";
print "<META content=\"text/html\; charset=ISO-8859-9\" http-equiv=content-type\">";
print "</head>";
print "<body bgcolor=\"#000000\">";
print "<br><br>";
print "<font face=\"verdana\" size=\"2\" color=\"#FFFFFF\">";
print "CGI/Perl programları yazarken özel karakterlerin (\$,\&, \@,
\;,\") önüne ters slash (\\\) koymayı unutmayın!";
print "</font>";
print "</body>";
print "</html>";
Yukarıdaki örnekten herhangi bir ters slash (\) işaretini kaldırıp
sonucunu ve perl'e neden "öğrenmesi zor bir dil" dediklerini
görebilirsiniz :). Tavsiyem burda biraz durun ve bol bol ekrana düzyazı
yazdıran kodlar yazın ve elinizi alıştırın.
Perl ile html yazdırmanın aslında daha kolay fakat kullanışsız bir
yöntemi daha vardır. Kolaylığı Perl'ün bu kullanım şeklinde tüm yazıları
html olarak algılaması ve ters slash kullanımına gerek kalmamasıdır,
kullanışsızlığı ise satırlar arasında herhangi bir döngü ya da alt
program çalıştırılamaması, perl'ün fonksiyonel olarak
kullanılamamasıdır. Yukarıdaki aynı kodları şu şekilde de
yazdırabilirdik:
#!/usr/bin/perl
# duzyazi2.cgi
print "Content-type:text/html\n\n";
print <<HtmlBitis
<html>
<head>
lttitle>Düzyazı Dosyası</title>
<META content=\"text/html\; charset=ISO-8859-9\" http-equiv=content-type\">
</head>
<body bgcolor=\"#000000\">
<br><br>
<font face=\"verdana\" size=\"2\" color=\"#FFFFFF\">
CGI/Perl programları yazarken özel karakterlerin (\$,\&, \@, \;,\")
önüne ters slash (\\\) koymayı unutmayın!
</font>
</body>
</html>
HtmlBitis
;
Bu kodu yazması daha kolaydır fakat kullanışsızdır. Bundan sonraki
örneklerimde ilk verdiğim şekilde kullanacağım, sizin de öyle yapmanızı
öneririm.
 
|
|
|
|