|
Antalya Tasarım Grubu - Web Tasarim Hizmetleri - Hosting (Barindirma) Islemleri - Alan Adi Islemlerii
Perl ile formdan gelen ya da bir şekilde elde ettiğimiz veriyi mantıksal sınamaya tabi tutabilir ve programı buna göre yönlendirebiliriz. Perl'de mantıksal sınamalar şu şekildedir:
Sayısal değerlerde mantıksal sınama :
Işlem |
Anlamı |
x > y
|
x büyüktür y'den
|
x < y
|
x küçüktür y'den
|
x >= y
|
x büyük eşittir y'ye
|
x <= y
|
x küçük eşittir y'ye
|
x == y
|
x eşittir y'ye
|
x != y
|
x eşit değildir y'ye
|
Sayısal olmayan değerlerde mantıksal sınama:
Işlem |
Anlamı |
a eq b
|
a eşittir b'ye
|
a ne b
|
a eşit değildir b'ye
|
a lt b
|
a küçüktür b'den
|
a gt b
|
a büyüktür b'den
|
a le b
|
a küçük eşittir b'ye
|
a ge b
|
a büyük eşittir b'ye
|
Buna göre perl'ile bir veri ya da değişken üzerinde mantıksal sınama yapmak için bu verinin ya da değişkenin içeriğinin sayısal olup olmadığını bilmemiz gerekiyor.
Mantıksal sınama if, elsif, else fonksiyonları :
Yukarıda sayısal değerlerde ve sayısal olmayan değerlerde (string) karşılaştırma operatörlerini gördünüz ama ne işe yaradıklarını bilmiyorsunuz. Bu operatörler perl'de karşılaştırma yapmaya olanak verir ve bunu da if(), elsif() ve else() komutlarıyla sağlarız. Kullanımı şu şekildedir:
if (koşul) {
koşul sonunda yapılacak işlem
}
elsif(koşul) {
koşul sonunda yapılacak işlem
}
else {
bu iki (ya da daha fazla) koşulun gerçekleşmemesi durumunda yapılacak işlem
}
Buna göre iki rakamı form vasıtasıyla programa gönderelim, program bize bu iki rakamı karşılaştırıp sonucunu ekrana yazsın :
#!/usr/bin/perl
# if1.cgi
use CGI qw(:standard);
print "Content-type:text/html\n\n";
$query = new CGI;
$ilksayi = $query -> param('ilksayi');
$sonsayi = $query -> param('sonsayi');
print "<html><body>";
if ($ilksayi ne "" or $sonsayi ne "") {
if ($ilksayi == $sonsayi) {
print "ilksayı($ilksayi) ile ikinci sayı($sonsayi) eşit!";
}
elsif ($ilksayi != $sonsayi) {
print "ilksayı ($ilksayi) ile ikinci sayı($sonsayi) eşit değil!";
}
}
print "<br>";
print "<form action=if1.cgi method=post>";
print "Birinci sayı: <input type=text name=ilksayi><br>";
print "Ikinci sayı: <input type=text name=sonsayi>";
print "<input type=submit value=Karşılaştır>";
print "</body></html>";
|
Ilk "if" karşılaştırması dikkatinizi çekti mi? Bu ilk karşılaştırma sayesinde eğer formdan veri gelmemişse sadece form görünüyor, formdan veri gelmişse karşılaştırma yapılıyor ve altında yine form gösteriliyor böylece programın saçmalamasını önlüyoruz.
Aynı şeyi bir de sayısal olmayan değerlerle, yani harflerle yapalım. Mesela formdan gönderilen veriler bizim ismimize eşitse ekrana "Senin isminle benim ismim aynı, biz adaşız" yazdıralım, değilse "isimlerimiz aynı değil, biz adaş değiliz" yazdıralım :
#!/usr/bin/perl
# if2.cgi
$benim_ismim = "hakan";
use CGI qw(:standard);
print "Content-type:text/html\n\n";
$query = new CGI;
$isim = $query -> param('isim');
print "<html><body>";
if ($isim ne "") {
if ($isim eq $benim_ismim) {
print "Bizim isimlerimiz aynı, biz adaşız!";
}
elsif ($isim ne $benim_ismim) {
print "Isimlerimiz aynı değil, biz adaş değiliz";
}
}
|
Yukarıdaki örnekte $benim_ismim değişkenini kendi adınızla ya da başka adlarla değiştirerek sınama yapabilirsiniz.
p
|