#!/usr/local/bin/perl # # Jednoduchy program # $text = 'Prvni program.'; print "$text\n"; # Tisk zpravy
Porovnani vystupu prikazu print
@ovoce = ("jablka", "hrusky", "svestky"); print @ovoce; # vlastni pole jablkahruskysvestky # vysledek print "@ovoce"; # Uzavreno v uvozovkach jablka hrusky svestky # vysledek print @ovoce.""; # Ve skalarnim kontextu 3 # vysledek
#!/usr/local/bin/perl # $file = 'prac.txt'; # jmeno souboru je ulozeno do promenne open(INFO, $file); # otevreni souboru $cislo = 0; # inicializace pocitadla radek while ($radek = <INFO>) { # cteni radek souboru ++$cislo; # zvyseni pocitadla o 1 print "$cislo $radek"; # tisk radky s cislem } # konec cyklu cteni
#!/usr/local/bin/perl # $file = 'ceskywww.txt'; # open(INFO, $file); # otevreni souboru $cislo = 0; # inicializace promenne cislo while ($radek =) { # cteni radku souboru chop $radek; # odstraneni znaku konec radky if ( $radek ne "" ) { # neni radek prazdny? ++$cislo; # pricteni 1 do promenne cislo print "$cislo $radek\n"; # opis radku s cislem } # konec bloku pro neprazdne radky else { # blok pro prazdne radky print "$radek\n"; # opis prazdneho radku bez cisla } # konec bloku pro prazdne radky } # konec cyklu cteni
Reseni prikladu 4.
Pocitani radek s retezcem ne
$file = 'ceskywww.txt'; open(INFO, $file); $cislo = 0; while ($radek =Pocitani radek s retezcem ne nebo Ne, v predchozim reseni nahradime vyhledavaci radek timto radkem:) { chop $radek; if ( $radek =~ /ne/ ) { # vyhledani retezce ne, pokud se najde plati vyraz v zavorce ++$cislo; print "$cislo $radek\n"; } else { print "$radek\n"; } }
if ( $radek =~ /[Nn]e/ ) {
Pocitani radek se slovem ne nebo Ne, v predchozim reseni nahradime vyhledavaci radek timto radkem:
if ( $radek =~ /\b[Nn]e\b/ ) {
Pouziti implicitni promenne $_:
$file = 'ceskywww.txt'; open(INFO, $file); $cislo = 0; while () { chop; if ( /ne/ ) { ++$cislo; print "$cislo $_\n"; } else { print "$_\n"; } }
$file = 'ceskywww.txt'; open(INFO, $file); $cislo = 0; while ($radek = <INFO>) { chop $radek; if ( $radek =~ s/(\S)\1/\($&\)/g ) { # nahrazeni dvojice stejnych znaku dvojici # uzavrenou v zavorkach, dvojice je ulozena # v promenne $& ++$cislo; print "$cislo $radek\n"; } else { print "$radek\n"; } }2. modifikace (prvni dvojice stejnych znaku neni v zavorkach)
$file = 'ceskywww.txt'; open(INFO, $file); $cislo = 0; while ($radek =3. modifikace predani retezce pomoci parametru) { chop $radek; if ( $radek =~ s/(\S)\1/\($&\)/g ) { $radek =~ s/\((\S)\1\)/\1\1/; ++$cislo; print "$cislo $radek\n"; } else { print "$radek\n"; } } close(INFO);
if ( $radek =~ s/${ARGV[0]}/\(${ARGV[0]}\)/g ) {
$file = 'ceskywww.txt'; open(INFO, $file); while ($radek =) { chop $radek; if ( $radek =~ s/http:/http:/ ) { # vyber radku s retezcem http: print "$cislo $radek\n"; @cast = split(/ +/,$radek); # rozdeleni radku na casti oddelene mezerami $i = 0; until ($i > $#cast) { # cyklus pres vsechny casti if ($cast[$i] =~ s/http:/http:/) { @prvek = split(/\//,$cast[$i]); # rozdeleni casti obsahujici retezec http: na # casti podle znaku / print "jmeno pocitace = $prvek[2]\n"; ++$i; } } } close(INFO);