Perl ile düzyazı ya da html formatında yazı yazdırma

kemalkemal

New member
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.

Kod:
#!/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:
Kod:
#!/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.
 

qeqe

New member
# 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
# 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
# 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>
# 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>
# 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>
# 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>
# 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
;
HtmlBitis
;
HtmlBitis
;
HtmlBitis
;
</body>
</html>
HtmlBitis
;
;
;
 
Üst