Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot

Re: Creating hash Array

by Punitha (Priest)
on Oct 20, 2008 at 07:41 UTC ( #718158=note: print w/replies, xml ) Need Help??

in reply to Creating hash Array

Hi ashnator

'@_' is the special variable used for subroutine arguments, instead you should use the array variable like

use strict; my %href; my $fn=<>; open(FH,"$fn") || die("Cannot open:$!"); while(<FH>) { my @array =split('\t',$_); ###@array is the array variable my $key = $array[0]; $href{$key} = $array[1]; } while (my ($key, $value) = each(%href)) { print $key.", ".$value."\n"; }


Replies are listed 'Best First'.
Re^2: Creating hash Array
by blazar (Canon) on Oct 21, 2008 at 09:40 UTC

    I personally believe that while @_ should certainly not be used as a general purpose variable, @array is as a horrible a name as one can be. It's like having a dog and calling it "dog!!" FWIW, a single letter variable would be better, especially here, since it's used only in two lines - except that I would use two scalars instead. Even better: since the whole file is slurped anyway, how 'bout the following?

    my %data = map { chomp; split /\t/, $_, 2 } <FH>;

    (Of course, it will fail if there are not enough entries for some record. In which case it would require some sanitizing which is left as an exercise to the OP.)

    If you can't understand the incipit, then please check the IPB Campaign.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (2)
As of 2021-02-28 13:44 GMT
Find Nodes?
    Voting Booth?

    No recent polls found