I figured that alright and tried the code with all the spaces but it didn't make any difference. I'm pulling the data from a database that's why the white space is there. That's also how it's being assigned the undef value although I don't know why. Here's the structure of the code that's doing that:
my %ret;
if ( defined( $rv ) and @$rv )
{
map { %{$ret{$$_{name}}->{$$_{project}}={$$_{result}}}
+} @$rv;
}
return %ret;
Update: I finally managed to get this working the way I wanted. Just thought I'd post how I did it in case it's useful to someone else in the future and wanted to say thanks to everyone that took the time to reply to me. Here's the approach I took:
my ($value1, $value2);
foreach (sort keys %hash)
{
foreach (sort keys %{$hash{$random_name}})
{
foreach $k1 (sort keys %{$hash{$random_name}{$fixed_name1}})
{
$value1 = $k1;
}
foreach $k2 (sort keys %{$hash{$random_name}{$fixed_name2}})
{
$value2 = $k2;
}
etc.
}
}
print "$value1\n";
Worked a charm. My full version has some error checking in case one of the values didn't exist. Did this with some if defined before the foreach and an else { after. |