while ( ) { my @wanted = ( split )[ 0, 5, 9 ]; $wanted[1] =~ s/\D//g; $wanted[2] = sprintf "%05s",$wanted[2]; push @parsed, \@wanted; } my @sorted_by_time = sort { $a->[2] cmp $b->[2] } @parsed; # oldest my $LIMIT = 2; my $count = 0; for (@sorted_by_time){ my $PID = $_->[1]; system("lmutil lmremove -h $PRODUCT $flexlmserver 27000 $PID"); last if ++$count >= $LIMIT }