Leser: 4
![]() |
|< 1 2 3 4 >| | ![]() |
37 Einträge, 4 Seiten |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
my @liste; sub lade_liste { my $pfad=shift; my @l; if(open (my $fh, '<', $pfad)) { @l=<$fh>; close($fh); } return @l; } @liste=lade_liste('Test.txt'); if(defined(@liste)) { if(scalar(@liste)) { # mach was } else { warn "Datei war leer, kann nicht weiter machen!" } } else { warn "Datei konnte nicht geladen werden ($!)" } # usw usf
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
#!/usr/bin/perl -w use strict; my @liste; @liste = lade_liste($ARGV[0]); if(defined($liste[0])) { if(scalar(@liste)) { print "mach was\n"; } else { warn "Datei war leer, kann nicht weiter machen!" } } else { warn "Datei konnte nicht geladen werden ($!)" } sub lade_liste { my $pfad = shift; my @l; if (open my $fh, '<', $pfad) { @l=<$fh>; close $fh; } return @l; }
1
2
3
4
5
6
7
8
9
community$ perl defined_array.pl test.txt
defined(@array) is deprecated at defined_array.pl line 7.
(Maybe you should just omit the defined()?)
Datei konnte nicht geladen werden () at defined_array.pl line 15.
community$ perl defined_array.pl test2.txt
defined(@array) is deprecated at defined_array.pl line 7.
(Maybe you should just omit the defined()?)
Datei konnte nicht geladen werden (No such file or directory) at defined_array.pl line 15.
Gast+2008-03-08 06:30:37--Das kann schon interessant sein.
Beispiel:
[...]
Gast+2008-03-08 05:55:58--
1
2
my @array; #undefiniertes array
( @array = ('dummy') )=(); #jetzt ein leeres definiertes array
Gast+2008-03-08 06:30:37--Code (perl): (dl )@liste=lade_liste('Test.txt');
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
use strict; use Data::Dumper; my @arr; sub undef_arr { my @arr; return @arr; } sub empty_arr { my @arr=(""); @arr=(); return @arr; } @arr=undef_arr(); print "defined" if (defined @arr); #: nicht defined print Dumper \@arr; @arr=empty_arr(); print "defined" if (defined @arr); #: nicht defined print Dumper \@arr
pq+2008-03-08 13:20:45--ach ich weiss nicht, wieso nimmst du da nicht gleich referenzen. ein u.U. langes array
durch die gegend zu kopieren ist eh nicht das beste, was man machen kann.
pq+2008-03-08 13:20:45--
also: natürlich sehe ich in dem beispiel einen unterschied, aber das sieht für mich echt
konstruiert aus. ich habe sowas in 10 jahren perl noch nie gebraucht - das heisst zwar nicht
zwangsläufig, dass es auch niemand anderes braucht, aber ich geb ja hier nur meine meinung wieder.
GwenDragon+2008-03-07 15:32:04--Was hindert dich bitte daran, einfach
if(scalar @Array)
oder if ($#Array>-1) zu schreiben?
Ist für Perlschreibfaule sogar kürzer als defined ;)
Linuxer+2008-03-08 16:45:45--Auf Basis der Ueberlegung, seinen Editor umzukonfigurieren, so dass er @ durch @$ ersetzt, koennte man ihn ja auch umkonfigurieren, dass er Umlaute durch deren Umschreibung ersetzt ;o))
SCNR (war schon irgendwo schmerzhaft, den Text ohne Umlaute zu lesen)
betterworld+2008-03-08 16:42:13--Ich dachte eigentlich immer, dass die beiden das gleiche tun:
undef @array
Linuxer+2008-03-08 16:45:45--Auf Basis der Ueberlegung, seinen Editor umzukonfigurieren, so dass er @ durch @$ ersetzt, koennte man ihn ja auch umkonfigurieren, dass er Umlaute durch deren Umschreibung ersetzt ;o))
SCNR (war schon irgendwo schmerzhaft, den Text ohne Umlaute zu lesen)
KurtZ+2008-03-08 16:55:23--NACHTRAG2: Es kann auch am Cut&Paste-verhalten meines Debian liegen, ich weiß nicht wer hier schlampt... FF, Debian oder Emacs.
![]() |
|< 1 2 3 4 >| | ![]() |
37 Einträge, 4 Seiten |