#!usr/bin/perl -w use strict; sub eat_array { my $array = shift; print "The array has " . @$array . " elements\n"; my ($minvalue) = ($array->[0] =~ /\|(\d+)$/); my ($minidx, $idx) = (0,0); foreach (@$array) { my ($currvalue) = (/\|(\d+)$/); if ($minvalue > $currvalue) { $minidx = $idx; $minvalue = $currvalue; } ++$idx; } my $minimum = splice @$array, $minidx, 1; print "Minimum is: $minimum\n"; return ($minimum, @$array ? eat_array($array) : ()); } my @testcase = ( 'a|a|1', 'a|a|9', 'a|a|0', 'a|a|12', 'a|a|3', 'a|a|4', 'a|a|3', 'a|a|6', 'a|a|9', 'a|a|1', 'a|a|5', 'a|a|7', 'a|a|15', 'a|a|0', 'a|a|8', 'a|a|4', ); print "\n"; my @results = eat_array(\@testcase); print @results . " elements.\n@results\n";