in reply to Iterating through an array using multiple loops and removing array elements

I am not sure what you want to achieve as @entries will be empty after the while loop whatever you do inside... However, the following should do what you want (not tested as I could not think of sample data).

while( @entries ) { my $top = shift @entries; @entries = map { compare_sub( $top, $_ ) > $user_defined_value ? $ +_ : () } @entries; }

UPDATE: Reading the whole thread more carefully I realize that my proposal is essential the same (but more convoluted) as Tanktalus' grep above. Pls ignore...