#!/usr/local/bin/perl # # Jednoduchy program # $text = 'Prvni program.'; print "$text\n"; # Tisk zpravy
Porovnání výstupu příkazu print
@ovoce = ("jablka", "hrusky", "svestky"); print @ovoce; # vlastní pole jablkahruskysvestky # výsledek print "@ovoce"; # Uzavřeno v uvozovkách jablka hrusky svestky # výsledek print @ovoce.""; # Ve skalárním kontextu 3 # výsledek
#!/usr/local/bin/perl # $file = 'prac.txt'; # jméno souboru je uloženo do proměnné open(INFO, $file); # otevření souboru $cislo = 0; # inicializace počítadla řádek while ($radek = <INFO>) { # čtení řádek souboru ++$cislo; # zvýšení počítadla o 1 print "$cislo $radek"; # tisk řádky s číslem } # konec cyklu čtení
#!/usr/local/bin/perl # $file = 'ceskywww.txt'; # open(INFO, $file); # otevření souboru $cislo = 0; # inicializace proměnné cislo while ($radek =) { # čtení řádku souboru chop $radek; # odstranění znaku konec řádky if ( $radek ne "" ) { # není řádek prázdný? ++$cislo; # přičtení 1 do proměnné číslo print "$cislo $radek\n"; # opis řádku s číslem } # konec bloku pro neprázdné řádky else { # blok pro prázdné řádky print "$radek\n"; # opis prázdného řádku bez čísla } # konec bloku pro prázdné řádky } # konec cyklu čtení
Řešení příkladu 4.
Počítání řádek s řetězcem ne
$file = 'ceskywww.txt'; open(INFO, $file); $cislo = 0; while ($radek =Počítání řádek s řetězcem ne nebo Ne, v předchozím řešení nahradíme vyhledávací řádek tímto řádkem:) { 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/ ) {
Počítání řádek se slovem ne nebo Ne, v předchozím řešení nahradíme vyhledávací řádek tímto řádkem:
if ( $radek =~ /\b[Nn]e\b/ ) {
Použití implicitní proměnné $_:
$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 (první dvojice stejných znaků není v závorkách)
$file = 'ceskywww.txt'; open(INFO, $file); $cislo = 0; while ($radek =3. modifikace předání řetězce pomocí 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);