Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re: Accessing an array of anonymous hashes

by mreece (Friar)
on Mar 26, 2007 at 17:07 UTC ( [id://606619]=note: print w/replies, xml ) Need Help??


in reply to Accessing an array of anonymous hashes

i think you'll have to use the keys function:
print Dumper( keys %{ $transaction_record_fields_method1->[2] } ); print Dumper( values %{ $transaction_record_fields_method1->[2] } );
keep in mind keys will return a list, so:
my ($name) = keys %{ $transaction_record_fields_method1->[2] }; my $range = $transaction_record_fields_method1->[2]->{$name};

Replies are listed 'Best First'.
Re^2: Accessing an array of anonymous hashes
by thezip (Vicar) on Mar 26, 2007 at 17:17 UTC

    Yes, thanks. I did try this initially, and it was the only way that I could get it to work. I slowly began to realize that I was probably using the wrong data structure when I had to do this...

    Alternatively, is there a means, through clever indexing or such, that will also get me to the values I seek?

      you can dereference the hash, then treat it as a list:
      print Dumper( (%{ $transaction_record_fields_method1->[2] })[0] ); print Dumper( (%{ $transaction_record_fields_method1->[2] })[1] );
      but it probably makes more sense to just use an AoA.
        What do you think about this structure?
        my $transaction_record_fields = { 'Batch_Agency' => { COL => 0, POS => [ 1 .. 3] }, 'Batch_Date' => { COL => 1, POS => [ 4 .. 11] }, 'Batch_Type' => { COL => 2, POS => [ 12 .. 12] }, };

        Eventually, I'll be inserting some data into each column, so it will end up looking like this:

        my $transaction_record_fields = { 'Batch_Agency' => { COL => 0, POS => [ 1 .. 3], VALUE => + "AAA" }, 'Batch_Date' => { COL => 1, POS => [ 4 .. 11], VALUE => + "BBBBBBBB"}, 'Batch_Type' => { COL => 2, POS => [ 12 .. 12], VALUE => + "C"}, };

        I like the idea of being able to insert by fieldname rather than by a numeric index, and this structure supports that.

        OTOH, that fact that I have to hard-code the column index seems a little funky to me.



Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others perusing the Monastery: (5)
As of 2024-04-16 15:45 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found