Hash Sorting Problem



Dear List

I have written the following code .............

use Data::Dumper;


%file = (14 => "GGG",
11 => "AAA",
101 => "EEE",
1 => "TTT");


print Dumper \%file;



@arr1 = sort { $file{$b} cmp $file{$a} } keys %file; #the oldest entry lies
at the top position

print Dumper \@arr1;

foreach $el(@arr1)
{

delete $file{$el};
print "The $el is removed from the sorted list"."\n";
@arr1 = sort { $file{$b} cmp $file{$a} } keys %file; #the oldest entry lies
at the top position
print "After sorting the array elements are"."\n";
print Dumper \@arr1;
}


---------------output ------------

$VAR1 = {
'1' => 'TTT',
'11' => 'AAA',
'101' => 'EEE',
'14' => 'GGG'
};
$VAR1 = [
'1',
'14',
'101',
'11'
];
The 1 is removed from the sorted list
After sorting the array elements are
$VAR1 = [
'14',
'101',
'11'
];
The 101 is removed from the sorted list
After sorting the array elements are
$VAR1 = [
'14',
'11'
];

In the last output I think the list is not sorted properly. How can I solve
this problem.

Thanks&Regards in Advance
Anirban Adhikary.


Relevant Pages