Posted By: RoboShim (ICQ #: 166 703 40) on 'CZscripts' Title: Re: Matice Date: Thu Dec 17 10:08:11 1998 > Zkusils tu matici volat jako > $Matice[3][5] = 7; ? :-) > Ono totiz $Matice[3,5] neni prvek matice (=pole poli) > ale prvek hashe s klicem "3,5"... *** Na zacatek, hashe pouzivaji slozene zavorky a ne hranate na zadani klice, takze hash s klicem "3,5" by se zapsal $a{"3,5"} a ne $a[3,5]. Podle toho co jsem zkousel: #!/usr/bin/perl $a[0,0]="a";print "",@a,"n"; $a[0,1]="b";print "",@a,"n"; $a[1,0]="1";print "",@a,"n"; $a[1,1]="2";print "",@a,"n"; for ($i=0;$i<2;$i++) { for ($j=0;$j<2;$j++) { print "$a[$i,$j] "; }; print "n"; }; haze nasledujici vysledky a ab 1b 12 1 2 1 2 a z toho je videt, ze ignoruje prvni index a bere az druhy AA KRUCI, ted me to napadlo, co se deje. V PERLu jako i v C je carka operatorem zapomenuti, takze v tech hranatych zavorkach se vyhodnoti prvni cislo a potom se jako index do pole pouzije to druhy cislo. Takze jsem zkusil pouzit nasledujici: #!/usr/bin/perl $a[0][0]="a";print "",@a,"n"; $a[0][1]="b";print "",@a,"n"; $a[1][0]="1";print "",@a,"n"; $a[1][1]="2";print "",@a,"n"; for ($i=0;$i<2;$i++) { for ($j=0;$j<2;$j++) { print "$a[$i][$j] "; }; print "n"; }; a vysledek je, zda se, spravnej: ARRAY(0x80b9fe0) ARRAY(0x80b9fe0) ARRAY(0x80b9fe0)ARRAY(0x80ba1fc) ARRAY(0x80b9fe0)ARRAY(0x80ba1fc) a b 1 2 a funguje to i v DOSu:-) Jinak jde o to, ze se vytvari pole, ktere obsahuje odkazy na jina anonymni pole. Vytvareni a prace s anonymnimi poli viz. man perlref na linuxu nebo v knizce o PERLu (ted nevim, jak se presne jmenuje). Pripadne dotazy se budu snazit zodpovedet. Cau. RoboShim.