LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Programming (http://www.linuxquestions.org/questions/programming-9/)
-   -   How do I get number of elements in a hash of arrays? (http://www.linuxquestions.org/questions/programming-9/how-do-i-get-number-of-elements-in-a-hash-of-arrays-689620/)

RavenLX 12-10-2008 11:22 AM

How do I get number of elements in a hash of arrays?
 
Ok, I have something like this:

$arr_hash{'produce'}{'veggies'}[0] = Broccoli
$arr_hash{'produce'}{'veggies'}[1] = Cauliflower
$arr_hash{'produce'}{'veggies'}[2] = Carrots

$arr_hash{'produce'}{'color'}[0] = Green
$arr_hash{'produce'}{'color'}[1] = Orange
$arr_hash{'produce'}{'color'}[2] = White

What I want to know is how do you tell how many elements are in $arr_hash{'produce'}{'veggies'} for example. It should be 3. But I can't get anything to work to produce # of elements for that.

For example, I've tried:

print $#arr_hash{'produce'}{'veggies'} . "\n";

And it doesn't work.

Anyone know how to do this? Thanks.

forrestt 12-10-2008 11:47 AM

Try this:

Code:

#!/usr/bin/perl

$arr_hash{'produce'}{'veggies'}[0] = Broccoli;
$arr_hash{'produce'}{'veggies'}[1] = Cauliflower;
$arr_hash{'produce'}{'veggies'}[2] = Carrots;

$arr_hash{'produce'}{'color'}[0] = Green;
$arr_hash{'produce'}{'color'}[1] = Orange;
$arr_hash{'produce'}{'color'}[2] = White;

$aref_veggies =  $arr_hash{'produce'}{'veggies'};
print $#$aref_veggies + 1 . "\n";
print scalar @$aref_veggies . "\n";

HTH

Forrest

RavenLX 12-10-2008 12:44 PM

Thank you. This is exactly what I was looking for. :)


All times are GMT -5. The time now is 02:42 PM.