![]() |
|< 1 2 >| | ![]() |
16 Einträge, 2 Seiten |
Gast+2008-08-18 12:49:16--Das "exists" ist nötig sonst wird automatisch der Hashkey "234" angelegt und der erste Teil der Abfrage wäre damit immer wahr!
1
2
3
4
5
6
7
8
9
10
perl -MData::Dumper
my @test = ({1 => 2});
my @var = grep{ $_->{123} and $_->{123} == 2 }@test;
print join( "::", @var),"\n", Dumper \@test;'
$VAR1 = [
{
'1' => 2
}
];
Escape+2008-08-18 15:26:53--Nach meinem Verständnis wird auf der linken Seite der Bedingung geprüft, ob $->{234} einen definierten Wert enthält.
Auf der rechten Seite der Bedingung wird geprüft ob der definierte Wert dem Muster entspricht.
Escape+2008-08-18 15:26:53--exists() würde prüfen ob der Key $->{234} im Hash vorhanden ist und, falls nicht, beim Durchlauf der rechten Seite der Bedingung, eine Fehlermeldung erzeugen (Use of uninitialized value ... ).
Sehe ich das falsch?
Escape+2008-08-18 15:26:53--P.S. '&&' statt 'and' könnte besser sein.
![]() |
|< 1 2 >| | ![]() |
16 Einträge, 2 Seiten |