Pole

Petr Ruzicka ruzickap na volny.cz
Neděle Březen 30 14:14:28 MEST 2003


Dobry den.
Dekuju za radu, opravdu to po prostudovani materialu fungovalo. Jen by
me zajimal maly detail, jestli muzu napsat neco jako:


#!/usr/bin/perl -w

($serverx,$commentx) = vrat();
print "\nxxx{$$serverx[0]}yyy{$$commentx[0]}zzz\n";
..
..
..
{ Zaplnim pamet ...}
..
..
print "xxx{$$commentx[1]}xxx"; 
#-> Vypise se spravny obsah promenne? {200}. Neni to chyba ikdyz se vse
#tvari OK?



sub vrat {
#  my(@server, na comment) = ((1,2,3),(100,200,300)); - nechapu proc tohle
#  nefunguje (naplneni poli)?
  my(@server) = (1,2,3);
  my(@comment) = (100,200,300);
  return (\@server,\@comment);
}



---> Docetl jsem se ze pokud v bloku {} pouziji konstrukci: my promenna,
tak se mi na konci bloku zrusi (ale v pameti data zustavaji). To znamena
ze by se mi mela zrusit i v te funkci sub. V tomto pripade se vsak vse
tvari v poradku, ale ja nevim, zda se mi pri dalsi praci nahodou na
misto hodnot pole (@server a @comment) nebudou zapisovat nejaka data -
ktera mi puvodni chtena data prepisou...









On Mon, 24 Mar 2003 19:29:36 GMT
Honza Pazdziora <adelton na fi.muni.cz> wrote:

> On Mon, Mar 24, 2003 at 07:57:14PM +0100, Petr Ruzicka wrote:
> > Dobry den.
> > Mam problem jak vytahnout vice poli z funkce, ktere nasledne ulozim
> > do nejakych promennych.
> > Priklad:
> > 
> > (pole1_main, pole3_main, pole2_main) = vrat_vice_poli();
> > 
> > sub vrat_vice_poli {
> > .
> > . /* vlozim nejake udaje do poli pole[1-3] */
> > .
> > return (@pole1, @pole2, @pole3, $cislo);
> > }
> > 
> > ---> V prikladu bych potreboval z funkce vrat_vice_poli ulozit
> > obsahy poli pole[1-3] do poli v hlavnim programu pole[1-3]_main.
> > Samozrejme ze se mi vsechna pole, ktera vraci funkce
> > (vrat_vice_poli) ulozi do promenne pole1_main, a zbytek promennych
> > bude prazdny :-(. Da se to nejak obejit?
> 
> Obejit ne. Ale standardni reseni je, ze misto poli budete vracet
> reference na pole, tedy skalarni hodnoty. Ty si ulozite do skalaru
> a k tem polim se dostanete dereferenci, tedy pres @$pole1_ref.
> 
> -- 
> ---------------------------------------------------------------------
> ---
>  Honza Pazdziora | adelton na fi.muni.cz |
>  http://www.fi.muni.cz/~adelton/
>       ... all of these signs saying sorry but we're closed ...
> ---------------------------------------------------------------------
> ---


Další informace o konferenci Perl