M
Michael Hill
I have this hash I'm trying to traverse and having some trouble.
my $var1 = {
'database' => {
'table' => {
'fields' => {
'field_name'
=> [
'A',
'B',
'C',
'D'
]
},
'name' => 'name of table'
}
}
};
This works:
print "$var1->{database}->{table}->{name}\n\n";
print "$var1->{database}->{table}->{fields}->{field_name}->[0]\n";
print "$var1->{database}->{table}->{fields}->{field_name}->[1]\n";
print "$var1->{database}->{table}->{fields}->{field_name}->[2]\n";
Now if I want to loop through all those in:
$var1->{database}->{table}->{fields}->{field_name} ?
I'm attempting to do this pointing directly to an array and loop through
the values but the error message says I am pointing to an element. How
do I point to the elements array?
foreach my $y ( keys %$var1->{database}->{table}->{fields}->{field_name}
)
{
print "$y\n";
}
Now if I force nested elements to be arrays .... like:
$var2 = {
'database' => [
{
'table' => [
{
'fields' => [
{
'field_name' => [
'A',
'B',
'C',
'D'
]
}
],
'name' => [
'name of
table'
]
}
]
}
]
};
This doesn't work anymore:
print "$var2->{database}->{table}->{name}\n\n";
print "$var2->{database}->{table}->{fields}->{field_name}->[0]\n";
Any how would I loop though the
$var2->{database}->{table}->{fields}->{field_name} elements array?
Thanks,
Mike
my $var1 = {
'database' => {
'table' => {
'fields' => {
'field_name'
=> [
'A',
'B',
'C',
'D'
]
},
'name' => 'name of table'
}
}
};
This works:
print "$var1->{database}->{table}->{name}\n\n";
print "$var1->{database}->{table}->{fields}->{field_name}->[0]\n";
print "$var1->{database}->{table}->{fields}->{field_name}->[1]\n";
print "$var1->{database}->{table}->{fields}->{field_name}->[2]\n";
Now if I want to loop through all those in:
$var1->{database}->{table}->{fields}->{field_name} ?
I'm attempting to do this pointing directly to an array and loop through
the values but the error message says I am pointing to an element. How
do I point to the elements array?
foreach my $y ( keys %$var1->{database}->{table}->{fields}->{field_name}
)
{
print "$y\n";
}
Now if I force nested elements to be arrays .... like:
$var2 = {
'database' => [
{
'table' => [
{
'fields' => [
{
'field_name' => [
'A',
'B',
'C',
'D'
]
}
],
'name' => [
'name of
table'
]
}
]
}
]
};
This doesn't work anymore:
print "$var2->{database}->{table}->{name}\n\n";
print "$var2->{database}->{table}->{fields}->{field_name}->[0]\n";
Any how would I loop though the
$var2->{database}->{table}->{fields}->{field_name} elements array?
Thanks,
Mike