Here is a story about a little guy who lives in Perliini ellikäs Perl tutti # 3 Varoitus!!! Tähän dokumentti on suojattu edellisten dokumenttien disclaimereilla sekä muulla krääsällä. Lisäys edellisiin varoituksiin: En vastaa myöskään tämän varoituksen (tai edellisten varoitusten) aiheuttamista hengitysvaikeuksista (muutama tapaus havaittu) enkä muistakaan vaivoista tai onkelmista elikkäs lyhyesti: En ota mitään vastuuta mistään! End_of_Varoitus!!! Ja koska dokumentin eestinkieliset lukijat ovat valittaneet etteivät ymmärrä mitään tuosta varoituksesta, tuleepi se nyt sitten eestin kielellä myöäs: Vaaretus!! See dokument on suojatud eelnev dokumet vaaretus ja muu sellist. Lisad eelnev vaaretus: Mina ei vastuta ka see vaaretus (vôi eelnev vaaretus) pôhjustade hingata raskus (mõni juhtum märgata) ja eik muust sellist vaevad vôi onkelm vôi lühike: Mina ei võtta vastuta miski. Vaaretus_lõpp!!! Ja sitten asiaan: Muit juhtida srtuktuur (muita ohjausrakenteita) ----------------------------------------------- Viimane-lause elikkäs Perlissä on sellain komento kuin last. Se wörkkii taikka sen wörkkiminen selittyypi näin: while (hepsantuu) { heps; heps; heps; if (hepsantuu_toinen) { heps_toinen; heps_toinen; last; #siinä se viimein(en) on } heps_jatkuu; heps_jatkuu; } #Last hyppäyttää tänne eliikkäs poies #tuosta whilestä, että silleeen on se* # *Koska meillä on joulu Nyt siis jos tuo hepsantuu_toinen on tosi niin suoritetaan nuo kaksi lausetta (heps_toinen) ja sitten tuo last. Eli tuossa tuo lukee selkeesti että se hyppääpi eli keskeyttää tuon whilettimen suorituksen (voipi olla until, for taikkas jokin muu toistolelu) Seuraava (eest. järgmine)(eng. next)-lause Next toimii pikkasen erilailla kuin last, mutta sillee: while (hepsantuu) { heps; heps; heps; if (hepsantuu_toinen) { heps_toinen; heps_toinen; Next; #Seuraava... } heps_jatkuu; heps_jatkuu; #Next hyppäyttää tänne eliikkäs #tuon whilen loppuun, että silleeen on se* # *Koska meillä on joulu kaikesta # vastaväitteestä suolimatta huolimatta } Näin (tai en nähnyt) ikään. Redo vielä tähän ankeaan arkeen samaisella esim-erkillä. while (hepsantuu) { #Redo hyppäyttää tänne eliikkäs #tuon whilen alkuun, että silleeen on se* # *Koska meillä on joulu, vieläkin heps; heps; heps; if (hepsantuu_toinen) { heps_toinen; heps_toinen; Redo; #Undo, eiku... } heps_jatkuu; heps_jatkuu; } Nyt olet kaikkitietävä Perliini-guru(tar). Juuei. Tässä muutes hiano esim erkki (tee-se-itse-while): { heps; heps; if (hepsantuu) { last; } heps_jatkuu; heps_jatkuu; redo; } Eikkäs toi vastaa: until (hepsantuu) { heps; heps; unless (hepsantuu) { heps_jatkuu; heps_jatkuu; } } Elikkäs tollain. Näihin last,next,redo-hommeleihin saa myös sellattisen ettäs se hyppii jonnekii. Kutenska: JOKU: while (hepsantuu) { heps; heps; is (hepsantuu_toka) { last JOKU; } } Elikkäs jos hepsantuu_toka ompi totta hypellään JOKUun. Jeps. On Perlissä sellainen jutska joka vähentelee jossitelujen määrää: JOKU: last JOKU if hepsantuu; #vastaapi: if (hepsantuu) {last JOKU} Sama toimiipi unlessin, untilin ja whilettimen kanssa. Sitten on tälläisiä kuten &&, || ja ? elikkäs eksplöneissön: if (näin) {noin;} noin if näin; näin && noin; Elikkäs kaikki tarkoittaa samaa asiaa. Sitten on viälä unlessi: unless (näin) {noin;} näin || noin; Ja tämä kyselymerkki, joka on myös näkö ja kaukonäkö-kielissä (C/C++). (vai olikohan se likinäkö?vai:ei). Ja siis Eksämppelii: if (näin) {on;} else {eioo;} #yhden_rivin_if_else_lauseke näin?on:eioo; #sama?toisella:tavalla Ok. Everything on clear. Kannattais olla nimittäin siinä voipi myös käyttää sulkuja, jolloin kaikki rulettaa: ($a<$b)?($b=$a):($a=$b) Elikkästä, jos $a on pienempi kuin $b niin $b on $a muutoin $a olla $b. Kaikki kirkasta? Kolme kiloa silakkaFILEttä, kiitos ---------------------------------- Elikkäs tiedostot. Siis tiedostoihin writaaminen ja readaaminen. Sesam aukene: open(FILETIN, "jehna.txt"); #avaa tiedoston lukemista varten (READONLY) open(FILEOUT, ">jehna.txt"); #file kirjoittamista varten. (WRITEONLY, destructive) open(FILEADD, ">>jehna.txt"); #lisätään tiedoston loppuun. (WRITEONLY) Sitten se silakkafile suljetaan closella; close(FILETIN); close(FILEOUT); close(FILEADD); Ettäs silleen; Jos toi avaaminen alkaa kettuilee, voi ohjelman kuolettaa: open(FILETIN, "jehna.txt") || die "Kääk! File jäi pakastealtaaseen"; Elikkäs jollei tiedostoo löydy tai jokin muu errori tulee saadaan errorit; Voit myös käyttää unlessiä tahi ihviä; unless(open(FILE,"jehna.txt")) { die "no voi jehna"; #filettä ei löydy } else { print "No voi ei jehna"; #file löytyy } Sitten se usettaminen; #nyt sulla on jokin file perattatt... eiku avattuna. open(FILE, "jehna.txt") || die "Kääk! File jäi pakastealtaaseen"; #tai no etsä kuiteskaa osaa tota rivii ite köpytt.. eiku writettaa while () { chomp; print "$_\n"; } Tahi: while ($luku=) { chomp($luku); print "$luku\n"; } Perlissä on sellainen DOS:n exists fynktiö, joka chtsekkaa onko se filee tuolla jossakin; if (-e $filee) { open (FILE,$filee); } else { die "$filee not found, general protection fault in 53f1:1a73"; } Selkeää, jollei oo äsk mee; Jottei elämä olsisi tylsää on Perlissä muutama muukin testi. Ja sitten siitä on tää mun hiano table: MikäHä? Eksplöneissön ------- ------------- -r Filettä tai hakemistoo voidaan lukea -w Fileeeseen tai hakemistoon voidaan writettaa -e Joo se on olemassa, siis jokin file tai hakemisto -x File voidaan runnia -z Tiedosto on olemassa ja sen size on zero elikkäs nolla -s File tai hakemisto löytyy ja sen koko on suurempi ku nolla -f Normaali tiedosto tää on mitä testataan -d Joo, se on hakemisto -t Tää on henkilötyyppinen laite (elikkäs character device) -T File on tekstifile -B Se on binäärifile elikkäs juu -M Montakos päivää sitten tota filettä on muutettu -A Montakos päivää sitten sitä on käytetty -C Ettäs monta päivää sitten i-nodee on muutettu???? Eikä sitten eksämppelii koska toi on simppelii. Eiks vaan? Meillä on myös stat-fynktiö, joka palauttaa tietoa jostain fileestä; Ja sitä tietoa tulee. Se palauttaa listan, jonka pituus ompi 13.!!! Sitä usetetaan: ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime, $mtime,$ctime,$blksize,$blocks) = stat("jeps.txt"); Sitten seuraa tiedoitus merenkulkijoille: Fileet saattavat hyppiä silmille. Sen takia fileiden tunnistustaulukko: MitäHä Eksplö.. juu ------ ------------ dev laitenumero ino i-node mode tiedoston luvat: read/write/ex-ecute nlink montas linkkiä tähän fileeseen viittaapi uid user ID gid group ID rdev laitteen tunnus size tiedoston koko in byteissä atime milloin viimeeks käytetty mtime millo viimeeksi muutettu ctime ko millo se luotu blksize levylohkon koko???? blocks montas lohkoo??? Elikkäs noin; No voi puolipilkku; Se tarttuu; Varoitus, vaarallisia puolipilkkuja liikeellä; Just juu. Jotta ei ihan unpressioon (siis depressioon) vaivuttaisi tämä doka loppuu nyh. Siis kohta. On se merkillistä. Jos ei olisi, se voisi olla hankalaa lukea tätä, jollei merkkejä olisi. Pysy kanavalla, sillä seuraavaksi on tulossa kaikkea kivaa. Tämän dokumenttisarjan avulla myös Irvine, Maranellon hanttipoika, koekaniini erinäköisissä asioissa, pystyisi oppimaan Perlin salat. Tuosta tulikin mieleeni, että voiskohan tänne Perliiniin saada omat Formula 1 GP-kisat, se voisi tuoda lisää käyttäjiä tälle dokumentille. Pitääkän alkaa järjestelemään tuota asiaa! Se vois ollakin hiano: Perliini GP. No joo. Aikamoinen helmi tämä Perl. May you Perl clearly! (May you C clearly) Köpylefts (c) 1+666+666+666 Joro, just another lamer in Perliini