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

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

Replies are listed 'Best First'.
Re: Re: Re: Re: How can I deal with those big table data?
by Anonymous Monk on May 21, 2002 at 01:15 UTC
    Thanks, You are right, I make it today.