Thread wie testen ob leeres Array definiert wurde?
(36 answers)
Opened by KurtZ at 2008-03-06 23:58 Gast+2008-03-08 06:30:37-- dein Beispiel kann man folgendermaßen retten: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 use strict; #use Data::Dumper; my @liste; sub lade_liste { my $pfad=shift; my $liste_ar=shift; if(open (my $fh, '<', $pfad)) { @$liste_ar= ('dummy' ); # damit Speicher allokiert wird! @$liste_ar=<$fh>; close($fh); } return (@$liste_ar); } lade_liste('Test.txt' => \@liste); {no warnings; # "defined is deprecated" ausschalten if(defined(@liste)) { if( @liste ) { # if (scalar @liste) ist redundant print @liste; } else { warn "Datei war leer, kann nicht weiter machen!" } } else { warn "Datei konnte nicht geladen werden ($!)" } } pq's Einwand bzgl Fehlermeldung stimmt zwar, aber es gibt genug denkbare Beispiele wo ein leeres aber definiertes Array sinnvoll wäre ohne das eine Fehlermeldung geworfen werden müsste. TMTOWTDYOG (there's more than one way to dig your own grave)
|