Thread $_ und @_ übergeben (13 answers)
Opened by fraggs at 2007-01-24 13:53

topeg
 2007-01-24 21:02
#73554 #73554
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Code: (dl )
1
2
my $daten1 = $_;
my @daten2 = @_;

Das sieht für mich seltsam aus. In "$daten1" werden nie irgendwelche Daten vom Funktionsaufruf selber drin sein. In "@daten2" werden nie irgendwelche Daten landen die du außerhalb des Funktionsaufrufs in @_ gesetzt hast und nur wenn $_ vorher mit Daten gefüllt wurde, kann an $daten1 etwas übergeben werden.

allso so:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
sub test
{
 my $v1=$_;
 my @v2=@_;
 print "V1=$v1 V2=@v2\n";
}


$_="ein kleiner Test";
@_=("TEST", "TEST2", 3, 4, 5);
&test;
$_="kein Test";
&test("TEST", "TEST2", 3, 4, 5);

Da bekommst du wirklich nicht das was du willst.

Korrekt wäre eine Funktionsdefinition so:
Code (perl): (dl )
1
2
3
4
5
6
7
8
sub test
{
 my $v1=shift(@_);
 my @v2=@_;
 print "V1=$v1 V2=@v2\n";
}

&test("ein kleiner Test", "TEST", "TEST2", 3, 4, 5);

View full thread $_ und @_ übergeben