in reply to reference question between sub

Each element of @data_epstn of a reference to a hash containing a single element. That doesn't sound useful. I think your problem is much more fundamental. I'm not sure what you are trying to do, so I can't help design your structure.

I do have a useful tidbit to give you: Data::Dumper can help you visual your data structures. For example, to view @data_epstn,

use Data::Dumper; print Dumper \@data_epstn;

To view $results1,

use Data::Dumper; print Dumper $results1;

Replies are listed 'Best First'.
Re^2: reference question between sub
by convenientstore (Pilgrim) on Sep 13, 2007 at 22:26 UTC
    Dumper helped. I made a typo, _i_eoc_reason , this was suppose to be _eoc_reason This program is not even close to being finished but so far looks ok... I always thought I should be using dumper but until you actually put it down there with how I should look at things, I dind't think it was usefull.. but it showed me what I was doing wrogn right away thank you!!
      actually, now I can see the structure, but my question still remains, how do I reiterate over hash reference which has dynamic key to get the value out?
      $VAR1 = [ { '13-3:USNJN4SOIMT_N3_N' => '16' }, { '15-73:USNJN4SOIMT_N3_N' => '34' }, { '13-84:USNJN4SOGLONAPUS_N' => '34' },

        Again, you need to fix the basic problem first. Your structure is bad. There's no point to having hashes with just one key.

        Again, it's hard to say what it should be without knowing what this data is and what you are doing with it.

        Perhaps the following is what you need?

        $VAR1 = [ [ '13-3:USNJN4SOIMT_N3_N', '16' ], [ '15-73:USNJN4SOIMT_N3_N', '34' ], [ '13-84:USNJN4SOGLONAPUS_N', '34' ], ];

        or maybe even

        $VAR1 = [ [ '13-3', 'USNJN4SOIMT_N3_N', '16' ], [ '15-73', 'USNJN4SOIMT_N3_N', '34' ], [ '13-84', 'USNJN4SOGLONAPUS_N', '34' ], ];

        I hesitate to say this, since you really should not be using hashes to store a single value. But it is still good to know how to get the keys of a hash.

        If your hash keys are unique you could put them all in the same hash as below. If they are not unique, you'd have to do something like ikegami suggests, and make it a 2D array.

        #! perl use strict; use warnings; my %VAR1 = ( '13-3:USNJN4SOIMT_N3_N' => '16', '15-73:USNJN4SOIMT_N3_N' => '34', '13-84:USNJN4SOGLONAPUS_N' => '34', ); foreach my $key (keys(%VAR1)) { print "Key '$key' has value '${VAR1{$key}}'\n"; }

        Outputs:

        Key '13-3:USNJN4SOIMT_N3_N' has value '16' Key '13-84:USNJN4SOGLONAPUS_N' has value '34' Key '15-73:USNJN4SOIMT_N3_N' has value '34'