28 - Kolay liste! Perl, belki de rapor yazma dili olduu...

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: Kolay liste! Perl, belki de rapor yazma dili olduu iin, liste oluturmada zel fonksiyonlara ve kolaylklara sahiptir. rnein arpma ilemi (x), bir liste zerinde bir argmanla uygulandnda, listenin ye saysn argman saysnca oaltr. rnein: @liste = (1, 5) x 5; deyimi, u sonucu verir: (1, 5, 1, 5, 1, 5, 1, 5, 1, 5,) Perl, vereceiniz iki tam saynn arasn da artan diziyle doldurabilir. Bunun iin yanyana iki nokta (..) kullanrz: @dizi = (1..5) Bu durumda dizi adl dizinin deeri yle olur: 1, 2, 3, 4, 5. Bu kolaylk sadece artan bir dizi iin mmkndr; aeras doldurulacak rakamlardank nce, by sonra yazlmaldr. Perl ayn kolayl karakterler iin de salar: @dizi = (a .. h) Listemiz u elemanlara sahip olur: a b, c, d, e, f, g, h split() fonksiyonu, Perln gerekten bir bilgi ekme ve rapor yazdrma dili olduunu kantlayan fonksiyondur. Kelime anlam blmek, ayrmak olan split() fonksiyonu aynen bu ii yapar: Scalar biimindeki Stringleri arzu ettiiniz yerden ayr ettiiniz paralara bler. CGI ile Web sitesindeni Formdan birbirine eklenerek gelen veri yuman hatrlyor musunuz: isim=Mustafa+Durcan&yas=23. split() fonksiyonu olmasa idi, bu Stringi anahtar/deer iftlerine blmek gerekten zor olabilirdi. imdi ise tek satrlk bir deyimle bunu yapabiliriz. split sadece byle bir Stringi blmeye yaramakla kalmaz, fakat sabit diskteki bir dzyaz dosyasn okuyabilir; onun cmlelerini blebilir. Dzyaz dosyas sekme veya virglle ayrt edilmi deerler ieren bir veritaban dosyas olabilir; split ile byle bir veritabann okutabilir; iindeki deerleri Perl programmzda ve onun yardmyla Web sayfamzda kullanabiliriz. Size bouna batan beri Perl iyi dildir, demiyorum! split iki ya da argman ile kullanlr: 1. Blme noktas (delimiter=snrlayc) olan karakter: blmenin balayaca ve bitecei nokta. 2. Blnecek Stringi tutan deikenin ad 3. Blnerek elde edilecek listede bulunacak eleman says. Blme noktasn iki bl iareti arasna yazarz. imdi bu argmanlarn nasl kullanldn rneklerle grelim: $arkadas = Mustafa Osman Vildan Kudret; @arkadaslar = split(/ /, $arkadas); Bu deyimleri irdeleyelim: Tekil-Scalar arkadas deikeninin deeri Mustafa Osman Vildan Kudret eklinde. Bu deerin iindeki kelimeler aralk karakteri ile (bolukla) ayrlm. split() fonksiyonu ile bu drt kelimeyi bamsz deerler haline getirmek ve drt elemanl arkadaslar dizi deikenine (array) atamak mmkndr. split() fonksiyonundan dnecek deerleri @arkadaslar deikenine eitlemekle bunu yapabiliriz. split() fonksiyonunu yazarken blme noktas olarak boluklar semesini iki bl iaretinin arasna boluk brakarak belirtiyoruz; iki argman virglle ayrlyor ve bu ilemin yaplaca deikenin adn yazyoruz. Bunu anlayp anlamadnz snamak iin size bir soru: print $arkadaslar[1]; fonksiyonu ekrana hangi deeri yazdrr? pucu: Saymaya, 1den deil 0dan balayn! Diyelim ki Perle dosya okutmay rendik ve iindeki deerler sekme (Tab karakteri) ile ayrlm drt deer bulunan bir satr seerek $kayit deikeninin iine yazdrdk. (Merak etmeyin birazdan reneceiz Perle dosya okutmay ve okuduu satrlardan uygun olann semeyi!) imdi istiyoruz ki, birbirinden sekme ile ayrlm bu drt deer, $soyadi, $adi, $no ve $not deikenlerine atansn. Bunu split ile yle yapabiliriz: ($soyadi, $adi, $no, $not) = split (/\t/, $kayit); Bu dieyimi de irdeleyelim: birden fazla tekil-Scalar deikene ayan anda deer atayabilmek iin split() fonksiyonunun ortaya drt deer kartacan bilmek zorundayz. $kayit deikeninin ieriini biliyoruz; sekme ile ayrlm drt blmden oluan bir String-dize ieriyor. split() fonksiyonuna blme noktas olarak bu kes sekme iaretini kullanmasn bildiriyoruz. Sekme veya Tab karakteri, Perl ve dier programlama dilleri asndan zel bir durum saylr; bu karakteri elde eetmek iin klavyede Tab tuuna basamazsnz; bu tu ekrana Tab karakteri kartmaz, imlecinizi ilerletmeye karar. Ayn ekilde Return veya Enter tuuna basarak ekrana yeni satr+satrba (LF+CR) karakteri yazdramazsnz; imla alttaki satrn bana gider. Bu tr zel karakterleri Escape Durumu denen ekilde gstermeniz gerekir. Perlde zel karakterlerin gsterilmesi iin nne ters bl iareti koyarak, simgesi olan harfi yazarz. Sekme iaretinin simgesi t harfidir; dolaysyla blme noktasn belirteceimiz iki bl iaretinin arasna ters-bl iareti ile t harfini yazyoruz. Sonra ieriine blme ileminin uygulanaca deikenin adn veriyoruz. ...
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