promenna predana odkazem
Honza Pazdziora
adelton na informatics.muni.cz
Pátek Listopad 1 15:40:01 MET 2002
On Fri, Nov 01, 2002 at 02:59:04PM +0100, Pavel Smerk wrote:
>
> Kurnja, co se clovek nedozvi, ja zil doted v domeni, ze se predava hodnotou
No, ono se v podstate (semanticky) predava hodnotou, ale jak rika
perlsub:
The array @_ is a local array, but its elements are aliases
for the actual scalar parameters. In particular, if an
element $_[0] is updated, the corresponding argument is
updated (or an error occurs if it is not updatable).
Cili $_[0] je hodnota, nikoli reference, ale vyaliasovana ven. Tim
volanim samotnym se zadne kopirovani neprovadi. Jakmile na tu
promennou ale jednou sahnes a priradis si ji nekam dal, tak se jeji
hodnota s nejvetsi pravdepodobnosti kopirovat bude.
> a naopak ze k zadnemu kopirovani nedochazi pri $input = shift;, protoze pri
> normalnim poli se prece hodnota nekopiruje, ne? Uff, tenhle maly rozdil by
> mozna mohl byt zminen u dokumentace k shift nebo tak nekde. :)
Vyzkousej si to a zmer si velikost toho procesu -- jak pri prirazeni
my $x = $_[0], tak pri my $x = @_ se ta velikost zvetsi o velikost
toho skalaru, ktery prirazuji. Zatimco kdyz v te funkci ty hodnoty
prirazovat nebudu, tak se tim samotnym zavolanim funkce nic pametove
zajimaveho nestane. Jak na 5.6.1, tak na 5.8.0.
--
------------------------------------------------------------------------
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