Portál AbcLinuxu, 9. května 2025 21:01

Dotaz: Perl a reference

31.10.2008 14:59 super
Perl a reference
Přečteno: 279×
Odpovědět | Admin
Ahoj, resim jeden problem. Predavam jedne funkci referenci na pole, a tu referenci nejsem schopen uvnitr te fce dereferencovat.
sub a
{
    @x = @_;
    print @{x};
}

my @var = (1, 2, 3, 4, 5);
a(\@var);
vytiskne ARRAY(0x504f70) + warning, coz neni to co chci.
dik

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

31.10.2008 15:06 super
Rozbalit Rozbalit vše Re: Perl a reference
Odpovědět | | Sbalit | Link | Blokovat | Admin
print @$x; uvnitr te fce take nefunguje, vyhodi mi to: Use of uninitialized value in array dereference...
31.10.2008 15:42 super
Rozbalit Rozbalit vše Re: Perl a reference
sypu si popel na hlavu... reference je skalar.
Řešení 1× (misch)
31.10.2008 15:18 tyctor
Rozbalit Rozbalit vše Re: Perl a reference
Odpovědět | | Sbalit | Link | Blokovat | Admin
sub a
{
    $x = shift;
    print @$x;
}

my @var = (1, 2, 3, 4, 5);
a(\@var);
31.10.2008 15:20 Jan Šimák | skóre: 37 | Hradec Králové
Rozbalit Rozbalit vše Re: Perl a reference
Odpovědět | | Sbalit | Link | Blokovat | Admin
Protože odkaz na adresu není pole a skalár.
$x = @_;
Řešení 1× (misch)
31.10.2008 15:23 Jan Šimák | skóre: 37 | Hradec Králové
Rozbalit Rozbalit vše Re: Perl a reference
my @pole = qw(1 2 3 4);

sub a {
	my ($odkazPole) = @_;
	print $odkazPole->[0], "\n";
}

&a(\@pole);
31.10.2008 15:42 super
Rozbalit Rozbalit vše Re: Perl a reference
diky!
4.11.2008 11:31 Roman Vasicek
Rozbalit Rozbalit vše Re: Perl a reference
A v $x mas pocet prvku pole, takze pouzij radeji
($x) = @_;
nebo
$x = shift; # ekvivalent $x = shift @_;

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.