PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Was ist hier kaputt?


eViLiSSiMo
22.02.2005, 19:41
Hi,
Ich will in die variable hooray alle dateien einlesen die über die Commandline parameter angegeben wurden.

Und das dann so speichern das man per Datei namen auf die daten der datei zugreifen kann. Nun funzt das soweit, aber die 3 meldungen am schluss machen mich kirre. Woran liegt das?

Btw ich bin absoluter Perl noob, hab gestern erst damit angefangen *G*

#!/usr/bin/perl -w
use strict;
sub my_read{
open(TMPFILE,$_) or die " Can't open file $_ $!";
my @tmp;
while(<TMPFILE>){
push(@tmp,$_);
print $_;
}
close(TMPFILE);
return \@tmp;
}

my %hooray;
foreach(@ARGV){
$hooray{$_} = my_read($_);
}
foreach(@ARGV){
print "a line".$_."\n";
foreach($hooray{$_}){
print $_;
}
}


Use of uninitialized value in hash element at hwtut.pl line 19.
Use of uninitialized value in concatenation (.) or string at hwtut.pl line 24.
a line
Use of uninitialized value in hash element at hwtut.pl line 25.


eViLiSSiMo
22.02.2005, 21:37
Hi,
Ich will in die variable hooray alle dateien einlesen die über die Commandline parameter angegeben wurden.

Und das dann so speichern das man per Datei namen auf die daten der datei zugreifen kann. Nun funzt das soweit, aber die 3 meldungen am schluss machen mich kirre. Woran liegt das?

Btw ich bin absoluter Perl noob, hab gestern erst damit angefangen *G*

#!/usr/bin/perl -w
use strict;
sub my_read{
open(TMPFILE,$_) or die " Can't open file $_ $!";
my @tmp;
while(<TMPFILE>){
push(@tmp,$_);
print $_;
}
close(TMPFILE);
return \@tmp;
}

my %hooray;
foreach(@ARGV){
$hooray{$_} = my_read($_);
}
foreach(@ARGV){
print "a line".$_."\n";
foreach($hooray{$_}){
print $_;
}
}


Use of uninitialized value in hash element at hwtut.pl line 19.
Use of uninitialized value in concatenation (.) or string at hwtut.pl line 24.
a line
Use of uninitialized value in hash element at hwtut.pl line 25.



Hat sich erledigt thx for nothin' :o

butterkeks
22.02.2005, 22:34
dann sag mal, woran es lag; Komme ehrlich gesagt nicht darauf, wie die erste Meldung entstanden ist und die anderen kommen mir auch komisch vor.

Haste ein shift() innerhalb von my_read vergessen?

eViLiSSiMo
23.02.2005, 06:14
hi butterkeks,

Ich hab keine Ahnung woran das genau gelegen hat.

Und ich bin mir durch aus bewusst das ich dadurch (durch das herausfinden des Fehlers) was gelernt hätte.


MfG


#!/usr/bin/perl -w
use strict;

sub my_read {
shift;
open (TMPFILE,$_) or die " Can't open tha $_ file bro $!";
my @tmp;
while(<TMPFILE>){
push(@tmp,$_);
}
close(TMPFILE);
return \@tmp;
}
my %hooray;

for(@ARGV){
my $a=$_;
$hooray{$a} = my_read($a);
}

for(keys(%hooray)){
my $boo = $hooray{$_};
my @boo = @$boo;
for(@boo){
print $_;
}
}