iterate(@entries);
sub iterate {
my ( $top_entry, @entries ) = @_;
my @keepers;
for (@entries) {
my $comparison = compare_sub( $top_entry, $_ );
if ( $comparison > $user_defined_value ) {
push @keepers, $_;
}
}
iterate(@keepers) unless ...;
}
EDIT: A variation where you continue iterating or assign final result depending on some condition. It's hard to know the right approach from here w/o more info
my @final_result;
iterate(@entries);
sub iterate {
my ( $top_entry, @entries ) = @_;
my @keepers;
for (@entries) {
my $comparison = compare_sub( $top_entry, $_ );
if ( $comparison > $user_defined_value ) {
push @keepers, $_;
}
}
if (...) {
iterate(@keepers);
}
else {
@final_result = ...;
}
}
|