|| wertet das aus, was links von ihm steht; wenn das
undef,
"" oder
0 ist, wird es als FALSE betrachtet und der Wert rechts davon verwendet.
Wenn Du ein aktuelleres Perl hast, solltest Du
// verwenden:
my $attr_value = $_->{'att'}->{'value'} // 'fault';
// prüft, ob das links von ihm stehende definiert ist; wenn nicht, dann wird das rechts stehende verwendet.
Doku:
perlop - schaue dort nach "Logical Defined-Or"
edit:
Wenn Du
// nicht verwenden kannst, weil Dein Perl völlig veraltet ist, kannst Du es auch so umsetzen:
my $attr_value = defined $_->{'att'}->{'value'} ? $_->{'att'}->{'value'} : 'fault';
oder
my $attr_value = $_->{'att'}->{'value'};
$attr_value = 'fault' if not defined $attr_value;
Last edited: 2015-04-15 13:25:52 +0200 (CEST)
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!