Hallo,
ich erzeuge so ein Array:
push (@stoerliste,[$stoernr,$stoertyp,$stoertext,$stoersms,$stoerreserve1,$stoerreserve2,$stoerreserve3]);
Du baust also einen Array,
Dessen Elemente Referenzen auf anonyme Arrays sind
Und möchte über eine "foreach" Schleife darauf zugreifen.
my ($nr) = @_;
Was zum Teufel ist @_ ?
(Ich weiss was @_ ist, aber es ist wohl schlechter Code)
my ($nr) = @_;
ist das gleiche wie
my $nr = $_[0];
my $zaehler = 0;
foreach(@stoerliste)
Merke ab hier steht dir S_ als Alias zur Verfügung.
Das blöde ist, das du im weiteren keinen Gebrauch von dem Element machst, über welches du iterierst.
{
if (@$_[0] == $nr)
Hier greifst du auf das erste Element in @_ zu, welches du in der Anname dereferenzierst, dass es eine Arrayreferenz beinhalte.
Wenn $_[0] keine Referenz ist, hast du einen Fehler
Andernfalss dereferenzierst du eine Referenz und Vergreichst sie mit einer Refernenz, was auch falsch ist.
{
return $zaehler;
Sinnlos, weil deine Abfrage immer wahr oder immer falsch ist.
}
$zaehler++;
}Hier kommt aber bei "@$_[0]" die Fehlermeldung, warum ????
Welche? Perl ist sehr freundlich zu dir
Es sollte doch so funktionieren.
Sieht nicht so aus.
Ich gewinne den Eindruck dass du nicht weisst, was $_[0] ist.
Es ist das erste Element in @_ und somit das gleiche wie $nr
Gruß
brain
vielleicht willst du das
push( @arr , [1, 2, 3] );
foreach ( @arr ){
$_ ist eine Rererenz
$_->[0] == 1 and be_happy();
oder
@{$_}[0] == 1 and be_happy();
}
mfg Beat