Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re: pushing hash values to an array

by blazar (Canon)
on Oct 16, 2006 at 11:51 UTC ( #578477=note: print w/ replies, xml ) Need Help??


in reply to pushing hash values to an array

#!/usr/local/bin/perl use strict; use warnings; %h=('1', 'one', '2', 'two', '3', 'three');

Since you're under strict this won't even compile.

@arr=(1,2);

Ditto! (But I won't insist further.)

foreach $key(keys %h) { push(@arr,$h{$key}); } print @arr;

Thus is correct.

foreach $key(keys %h) { push(@arr,$$h{$key});

This is not. Why do you expect $h{$key} to be a scalar reference?

print "@arr\n"; }

You probably want to print out of the loop. Be careful (also) when preparing test examples.

All in all I suspect (but it's hard to tell from your description of the problem) you be in a situation in which you have $href=\%h or the like, and then

push @arr, $href->{$key};
is the way to go.


Comment on Re: pushing hash values to an array
Select or Download Code
Re^2: pushing hash values to an array
by valavanp (Curate) on Oct 16, 2006 at 12:13 UTC
    I am getting the hash reference values from the database through the keys of the hash values. I have a record with 3 fields in my backend. When i am retrieving the record with a particular field I am getting displayed only the number of fields, not the contents of the field which is 1,13 in this case(which are the actual values of the field). I am using these values in an combox box of a CGI application web page for multiple selection of an item. Only when i am pushing that hash values it is not getting displayed. In other areas, like retrieving rows it works fine. Please suggest me how can i proceed. I thank you for your suggestions.
      hi valavanp,

      When you're not sure what sort of variable you have I find it useful to use Data::Dumper. When you know what is actually in it you have a better chance of extracting the data.

      Show us the output of Data::Dumper and we'll be able to offer more help.

      I still have some problems parsing your text. I understand that English may not be your mother tongue, it's not mine either. I feel like suggesting you to concentrate on the (possibly ) few relevant points with your issue and ignore anything else that may contribute the the noise/signal ratio of your post.

      I am getting the hash reference values from the database through the keys of the hash values.

      Ok, you have a hashref, period. You want to push its values into an array, right? Then the suggestion I gave you in my other reply should be fine. Did you try it? Does it work? Any inconvenience with it? Or else you may directly dereference the hashref as a whole and combine the two mentioned functions in one sweep:

      push @array, values %$hashref;
      I have a record with 3 fields in my backend.
      [...]

      Snip!

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (4)
As of 2014-07-28 05:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (186 votes), past polls