Dear List I need to delete each element after every execution of the foreach loop and I need to update & sorted the @arr1 after every execution of the foreach loop. I have tried a lot but not able to do this ............Pls help...........
Thanks & Regards Anirban Adhikary On Mon, Feb 25, 2008 at 1:51 PM, John W. Krahn <[EMAIL PROTECTED]> wrote: > Anirban Adhikary wrote: > > Dear List > > Hello, > > > 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 [EMAIL PROTECTED]; > > > > 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 > > perldoc perlsyn > [ SNIP ] > If any part of LIST is an array, "foreach" will get very confused if > you add or remove elements within the loop body, for example with > "splice". So don't do that. > > > > at the top position > > print "After sorting the array elements are"."\n"; > > print Dumper [EMAIL PROTECTED]; > > } > > > > > > ---------------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. > > It is sorted properly, it's just that you are modifying the array @arr1 > inside a foreach loop that iterates over that same array and you > shouldn't do that. > > > > John > -- > Perl isn't a toolbox, but a small machine shop where you > can special-order certain sorts of tools at low cost and > in short order. -- Larry Wall > > > -- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > http://learn.perl.org/ > > >