"Perl umožňuje vytvářet prakticky jakkoli velká pole a hashe" - me vzdycky lehnul, kdyz uz nemel fyzickou pamet, swap ho vubec nezajimal (ale je mozny, ze mam starou verzi:)) ale zatim mi staci.
Taky je skvely, jak jednoduse se da v perlu vytvorit program na tisk prvocisel (projdete si sami a jasejte nad jednoduchosti a silou perlu):
== perl -le '$_ = 1; (1 x $_) !~ /^(11+)\1+$/ && print while $_++' ==
at zije perl :-) muj prvni programovaci jazyk ktery jsem se naucil.... och ta nostalgie - PRAVE kvuli
tomu ze to po me nechtelo nic presne a presno to chapalo co ze to po nem chci... Ale stejne si ted uz jedu s use strict, ale takovydle silenosti nepouzivam
rad bych vedel co jto dela presne :-) kazda carka tady ty
podminko scitaci/odcitaci cyklujici zaroven tisknouci "ein radky" mi delaji trochu problem...
"rad bych vedel co jto dela presne" - taky jsem nad tim dlouho premyslel, ale kdyz jsem to pak pochopil, tak je to hrozne jednoduche. Funguje to tak, ze se vytvori retezec o X znacich (kde X je zkoumane cislo). Pak se zkusi v tomhle retezci znaku najit regularni vyraz /^(11+)\1+$/, kterej znamena "najit dva nebo vice znaku, to cele dva a vicekrat za sebou, v celem retezci" (prakticky A krat B znaku, kde A,B>=2) a pokud se tenhle vzor nenajde (cili neni slozeny z A krat B znaku), tak to cislo je prvocislo a vytiskne se:))
Hehe:))) No, je to jenom TIMTOWTDI (ja osobne to pisu takhle:)) Proc nevyuzit moznosti jazyka:)) Predstavte si umet Perl na soutez v programovani, kde jeden z ukolu je naprogramovat program, ktery zjisti, jestli zadane cislo je prvocilo (v rozumnych mezich samozrejme):
----
print "Zadej cislo: ";
$a=<>;chomp $a;$b="X" x $a;
print "Cislo $a " . ($b !~ /^(XX+)\1+$/)?"je":"neni") . " prvocislo\n";
----
Provuch co je Perlu do swapu? To je starost operacniho systemu!
Kazdopadni ... pokud mas tak velky hashe nebo pole, ze ti zacina swapovat disk tak je lepsi ten hash ulozit na disk prez nejakou DBM knihovnu. Treba DB_File (Berklery DB). Obvykle je to mnohem rychlejsi nez kdyz budes nutit system ktery nic netusi o tvych datech aby ukladal a nacital kusy pameti.
A jedina zmena v programu je v tom miste kde vyrabis ten hash/pole.