32 - Karlatrma Operatrleri Karlatrma Matematik lemleri...

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: Karlatrma Operatrleri Karlatrma Matematik lemleri String lemleri Eittir == eq Eit deildir != ne Kktr < lt Byktr > gt Kk veya eittir <= le Byk veya eittir >= ge Bir karlatrmada, ileri srdmz iki koul da doru deilse, bir nc, drdnc.. nnci koulu arayabiliriz. Bunu elseif deyimi ile yaparz. u senaryoyu zihninizde canlandrn: if(art1) { ilem1 } elseif(art2) { ilem2 } elseif(art3) { ilem3 } elseif(art4) { ilem4 } else(art5) { ilem5 } Bu, Perl asndan srasyla u snamalarn yaplmas demek: 1. art 1 doru ise ilem 1i yap; deilse bir sonraki satra bak; ne komut grrsen onu icra et! 2. art 2 doru ise ilem 2yi yap; deilse bir sonraki satra bak; ne komut grrsen onu icra et! 3. art 3 doru ise ilem 3i yap; deilse bir sonraki satra bak; ne komut grrsen onu icra et! 4. art 4 doru ise ilem 4i yap; deilse bir sonraki satra bak; ne komut grrsen onu icra et! 5. art 5 doru ise ilem 5i yap; deilse bir sonraki satra bak; ne komut grrsen onu icra et! elseif deyimini kullandysak, elsee gerek kalmaz; ama programclk geleneine gre, else daima kullanlr. eer...deilse eklindeki mantk testlerinin bir dier tr deilse snav olabilir. Yani Say2 5e eit deilse unu yap! gibi. Bunu unless karlatrma deyimi ile yazarz: unless ($ad eq Mustafa7) { print Senin adn Mustafa deil! } unless deyimi yerine if deyimini not karlatrma operatryle birlikte kullanabiliriz: if(not($ad eq Mustafa)) { print Senin adn Mustafa deil! } imdi programmza dnelim ve bu rendiklerimizin nasl uygulandn grelim. Programda evre deikenlerini tutan %ENV likili Dizi deikeni iindeki REQUEST_METHOD anahtarnn deerinin GETe eit olup olmadn snyoruz. if deyimi ile yaptmz snamann sonucu doru ise (yani REQUEST_METHOD anahtarnn deerinin GETe eit ise) ilk komut-deyim bloku icra edilecektir. Bu blokta yaplacak i, evre deikenlerinden QUERY_STRINGin iindeki Stringi split fonksyonu ile & iaretlerinden blmlere ayrmaktr. Bu ilem sonucu ortaya kan bamsz Stringleri @girdi dizi deiteninde (Array) toplayacaz. Fakat ya yaptmz snama doru deilse, yani REQUEST_METHOD anahtarnn deeri GETe eit deilse? Bu durumda iki ey olabilir: ya bu deer POSTa eittir; ya da deildir. Peki, nce bu deerin POSTa eit olup olmadn snayalm. Bunu elseif ile yapabiliriz. Bu snamann sonucu doru, yani REQUEST_METHOD anahtarnn deeri POSTa eitse, bu kez STDINin ierii ile ilgileneceiz (ki bunu nasl yaptmz biraz sonra ele alacaz). Peki, REQUEST_METHOD anahtarnn deeri POSTa da eit deilse? Bir Formun METHOD zellii ya POST, ya da GET olur. Eer ikisi de deise, o zaman Formda hata var demektir. Bunu sonuncu else deyimine brakyoruz; Browsera hata mesaj yolluyoruz. Formu biz tasarladmza ve Form verilerini hangi yntemle gnderdiimizi bildiimize gre Perl programmzn banda neden byle bir sorguya ihtiya var? Aslnda yok! Fakat iyi bir programc gelenei, hi bir eyi ansa brakmamaktr; belki bizden sonra i ortaklarnzdan veya alma arkadalarnzdan biri, veya kz kardeiniz sizin verdiiniz gnderme yntemini beenmemi ve Formda deiiklik yapm olabilir! Yukardaki HTML kodunu deitirmemek artyla, Perl programnn bu blmn yle yazabilirdik: read (STDIN, $depo, $ENV{'CONTENT_LENGTH'}); @girdi = split(/&/, $depo); ...
View Full Document

This note was uploaded on 02/23/2012 for the course CS CS281 taught by Professor Özgürulusoy during the Winter '12 term at Bilkent University.

Ask a homework question - tutors are online