while (<>)
{
...
@fields = split ;
#field[0] is the module.
$entries{$region}{$fields[0]}{entry} = $fields[0] ;
$entries{$region}{$fields[0]}{addr} = $fields[1] ;
$entries{$region}{$fields[0]}{size} = $fields[2] ;
$entries{$region}{$fields[0]}{type} = $fields[3] ;
$entries{$region}{$fields[0]}{object} = $fields[5] ;
...
}
####
for my $region (keys %entries)
{
...
}
####
for my $region (keys %entries)
{
for my $module (keys %{$entries{$region}})
{
...
}
}
####
for my $size (sort {%{$entries{$region}{$a}{size}} <=> %{$entries{$region}{$b}{size}}} keys %{$entries{$region}})
{
...
}