Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re: Re: How can I deal with those big table data?

by Anonymous Monk
on May 19, 2002 at 21:02 UTC ( #167714=note: print w/replies, xml ) Need Help??


in reply to Re: How can I deal with those big table data?
in thread How can I deal with those big table data?


Thank you for your help!
I am a beginner for perl, sorry for all my silly mistake!
I need to read in two files, the first part works good.The second part,now I fixed a little bit, and test it, it can give me only one letter of the data, but my data should be the whole sequence, and my hash does not print out anything either. Please help!
#!/usr/bin/perl -w
use strict;
my ($file_list, $file_data)=@ARGV;
my %MYHASH;
#create hash
sub do_hash {
my $filename=shift;
open(FH, $filename) or die "Can't open $filename: $!\n";
while(<FH>){
my ($Name, $Data)=split,1;
while (my ($key, $value)=each (%MYHASH)){
rint $Name,"=>",$Data," ";
}
}
close FH;
}
do_hash('file_data');
exit;

Replies are listed 'Best First'.
Re: Re: Re: How can I deal with those big table data?
by Trimbach (Curate) on May 20, 2002 at 02:30 UTC
    There's still nothing in %MYHASH. Yes, you're declaring scope for %MYHASH and everything but just because %MYHASH is declared doesn't mean anything is in it. You have to assign some value or another into it in order for a while to work. Until there's something in your hash your while will never get executed and nothing will get printed.

    You probably want something like this:

    #!/usr/bin/perl -w use strict; my ($file_list, $file_data)=@ARGV; my %MYHASH; #create hash sub do_hash { my $filename=shift; open(FH, $filename) or die "Can't open $filename: $!\n"; while(<FH>){ my ($Name, $Data)=split,2; $MYHASH{$Name} = $Data; } close FH; } do_hash('file_data'); foreach my $key (keys %MYHASH) { print "$key => $MYHASH{$key}\n"; } exit;
    Note the fact that %MYHASH is assigned a whole bunch 'o data from the file, and after do_hash is completed (and %MYHASH has stuff in it) THEN all the data is printed out. And BTW, it should've probably been split, 2 not split, 1.

    Gary Blackburn
    Trained Killer

      Thanks, You are right, I make it today.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://167714]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (2)
As of 2021-11-27 08:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?