Split


Velmi uzitecnou funkci v perlu je funkce split, ktera rozdeluje retezec na jednotlive casti a uklada jednotlive casti do prvku pole. Tato funkce pouziva regularni vyraz a implicitne pracuje s promennou $_.

Priklad pouziti funkce split:

$info = "Jana:Michal:Ale:14, dlouha cesta";
@personal = split(/:/, $info);
Vysledek funkce split je pole @personal s obsahem
@personal = ("Jana", "Michal", "Ale", "14, dlouha cesta");
Pokud jsou informace ulozeny v promenne $_ pouzijeme prikaz
@personal = split(/:/);

Pokud jsou pole oddelena vicenasobnym znakem :, muzeme ve funkci split pouzit RE. Priklad:

$_ = "prvni:dalsi::druhy prvek:::posledni polozka";
@personal = split(/:+/);
vysledek je
@personal = ("prvni", "dalsi"
             "druhy prvek", "posledni polozka");
Ale:
$_ = "prvni:dalsi::druhy prvek:::posledni polozka";
@personal = split(/:/);
dava vysledek
@personal = ("prvni", "dalsi" "",
             "druhy prvek", "", "", "posledni polozka");

Slovo muze byt rozdeleno na znaky, veta na slova a odstavec na vety:

@chars = split(//, $word);
@words = split(/ /, $sentence);
@sentences = split(/\./, $paragraph);
V prvnim pripade je prazdny retezec porovnavan s prvkem mezi znaky, proto pole @chars obsahuje jednotlive znaky tj. retezce o delce 1.


Cviceni

Upravte posledni verzi programu tak, aby v souboru ceskywww.txt vyhledal radky obsahujici retezec "http:" napr.(http://web.cvut.cz/ascii/cc/icsc/software). Na techto radcich pak rozdelte retezec nasledujici bezprostredne za http: na jednotlive casti, oddelovacim znakem je lomitko. Vypiste retezec za // do dalsiho / tj. jmeno pocitace. Predpokladejte, ze retezec "http:" se muze vyskytnout na radku nekolikrat.
jmeno pocitace = web.cvut.cz

Jedno z moznych reseni.


Dalsi kapitola | Predchozi kapitola kapitola | Obsah