in reply to Array splitting

TIMTOWTDI:

use strict; use warnings; my @not_sorted = qw(Ape Arg Beep Circus); my @sorted = sort {$a cmp $b} @not_sorted; my @A = grep { /^A/ } @sorted; my @trash = grep { !/^A/ } @sorted; print join(', ', @A) , "\n"; print join(', ', @trash) , "\n";

You can even include the printf(...) in the grep block, i.e. at the beginning since the result of the block should be determined by the filter expression.
Have a look at split to split an array by position. From the title of your OP, I first thought you meant that...