Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re^2: Please help with Hash Key,value issue

by mmittiga17 (Scribe)
on Mar 11, 2009 at 18:52 UTC ( [id://749988]=note: print w/replies, xml ) Need Help??


in reply to Re: Please help with Hash Key,value issue
in thread Please help with Hash Key,value issue

Ok, I got myself to this point and am trying to read up on hash or arrays but. I cant figure out how to access each line I need to access as I was in my code sample.
This prints out what I want via Dumper: my $data = "GCUS.GCUS";my %userData;open(inData, $data);while (<inData +>) { chomp; $line = $_; if ($line =~/^GC/){ my $ACTNUM = substr $line, 11, 9 ; my $ref = substr $line, 0, 3 ; push @{ $userData{$ACTNUM} }, $ref = $line; } } Here is where I get stuck and cant seem to understand the perl doc: for $ACTNUM (sort keys %userData) { #########GCA############## my $line = $userData{$ACTNUM}{GCA}; $ACCTNUM = substr $line, 11, 9; $FIRM_ID = substr $line, 660, 1; $CURR = substr $line, 661, 3;

Replies are listed 'Best First'.
Re^3: Please help with Hash Key,value issue
by bellaire (Hermit) on Mar 11, 2009 at 20:40 UTC
    I am not sure you understand the data structure that you want to see as output. The code you have given is not what you want. Notably you are saying push @{ $userData{$ACTNUM} }, $ref = $line;, which will overwrite $ref with the entire $line before pushing it onto $userData{$ACTNUM}. I think what you really want is something more like this:
    push @{ $userData{$ACTNUM}{$ref} }, $line;
    Now having done that, you must realize that $userData{$ACTNUM}{GCA} now contains a reference to a list of all the lines where $ref was "GCA". Which means you want something more like this to access it:
    for $ACTNUM (sort keys %userData) { for my $line (@{$userData{$ACTNUM}{GCA}}) { $ACCTNUM = substr $line, 11, 9; $FIRM_ID = substr $line, 660, 1; $CURR = substr $line, 661, 3; ...
    That is, you must now loop over all of the lines for every $userData{$ACTNUM}{$ref} to process their (possibly) multiple values.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others perusing the Monastery: (7)
As of 2024-03-28 19:44 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found