promenna predana odkazem

Honza Pazdziora adelton na informatics.muni.cz
Pátek Listopad 1 14:49:06 MET 2002


On Fri, Nov 01, 2002 at 02:44:18PM +0100, Jiri Polcar wrote:
> On Fri, Nov 01, 2002 at 02:38:09PM +0100, Pavel Smerk wrote:
> > IMHO ho prikazem $scalar_input = ${$input}; kopirujete z promenne odkazovane
> > $input do promenne $scalar_input, takze minimalne v tu chvili bude v pameti
> > dvakrat. Proc nechcete pouzivat primo $$input? Pokud predate primo hodnotu,
> > tak se imho kopiruje uz pri predavani.
> 
> Protoze chci, aby vlastni kod fce nebyl zavisly na tom, co se mu dostane
> na vstupu. Takto bych musel psat fci pro $input a pak jeste jednou pro
> $$input.

Tak to udelejte naopak:

sub funkce {
	my $paramref;
	if (ref($_[0]) eq 'SCALAR') {
		$paramref = $_[0];	# zkopiruje se ta reference
	} else {
		$paramref = \$_[0];	# vyrobi se reference
	}

	# a zde se pracuje uz vesele s $paramref

}

-- 
------------------------------------------------------------------------
 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