Jakob Kofoed wrote:
Hi,

Hello,

I would like to load a file to a hash so I will be able to call a
specific number in that hash:

use strict;
use warnings;

my %hash = ();
open IN, "< $ARGV[0]" || die "could not open $ARGV[0]\n";

That will never die() because of the high precedence of the || operator.
You need to either use open() with parentheses or use the lower
precedence 'or' operator.  You should also include the $! variable in
the error message so you know why it died.

open IN, "< $ARGV[0]" or die "could not open $ARGV[0]: $!";


my $cnt = "0";

If you are going to use $cnt numerically why are you assigning a string
to it?  Why not just use the built-in $. variable?


while (<IN>) {
         chomp;
        %hash = ( $cnt => $_ );

You are assigning a list to %hash which overwrites the hash each time
through the loop.  What you want to do is assign the value to a specific
key.

        $hash{ $cnt } = $_;

But if all of your keys are sequential numbers then you should just use
an array instead:

        push @array, $_;


        $cnt++;
}
print $hash{"837"};

This works fine with the last line only! how do I append to my hash?
and secondly: here I use a counter to get a specific "line" in the
hash - does a hash have a "build in" counter to refer to?


John
--
use Perl;
program
fulfillment

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to