Split


Velmi u�ite�nou funkc� v perlu je funkce split, kter� rozd�luje �et�zec na jednotliv� ��sti a ukl�d� jednotliv� ��sti do prvk� pole. Tato funkce pou��v� regul�rn� v�raz a implicitn� pracuje s prom�nnou $_.

P��klad pou�it� funkce split:

$info = "Jana:Michal:Ale:14, dlouha cesta";
@personal = split(/:/, $info);
V�sledek funkce split je pole @personal s obsahem
@personal = ("Jana", "Michal", "Ale", "14, dlouha cesta");
Pokud jsou informace ulo�eny v prom�nn� $_ pou�ijeme p��kaz
@personal = split(/:/);

Pokud jsou pole odd�len� v�cen�sobn�m znakem :, m��eme ve funkci split pou��t RE. P��klad:

$_ = "prvni:dalsi::druhy prvek:::posledni polozka";
@personal = split(/:+/);
v�sledek je
@personal = ("prvni", "dalsi"
             "druhy prvek", "posledni polozka");
Ale:
$_ = "prvni:dalsi::druhy prvek:::posledni polozka";
@personal = split(/:/);
d�v� v�sledek
@personal = ("prvni", "dalsi" "",
             "druhy prvek", "", "", "posledni polozka");

Slovo m��e b�t rozd�leno na znaky, v�ta na slova a odstavec na v�ty:

@chars = split(//, $word);
@words = split(/ /, $sentence);
@sentences = split(/\./, $paragraph);
V prvn�m p��pad� je pr�zdn� �et�zec porovn�v�n s prvkem mezi znaky, proto pole @chars obsahuje jednotliv� znaky tj. �et�zce o d�lce 1.


Cvi�en�

Upravte posledn� verzi programu tak, aby v souboru ceskywww.txt vyhledal ��dky obsahuj�c� �et�zec "http:" nap�.(http://web.cvut.cz/ascii/cc/icsc/software). Na t�chto ��dc�ch pak rozd�lte �et�zec n�sleduj�c� bezprost�edn� za http: na jednotliv� ��sti, odd�lovac�m znakem je lom�tko. Vypi�te �et�zec za // do dal��ho / tj. jm�no po��ta�e. P�edpokl�dejte, �e �et�zec "http:" se m��e vyskytnout na ��dku n�kolikr�t.
jmeno pocitace = web.cvut.cz

Jedno z mo�n�ch �e�en�.


Dal�� kapitola | P�edchoz� kapitola kapitola | Obsah