nach Perl umgesetzt, würde das untenstehenden Code ergeben, wobei innerhalb des 1. map{} von rechts aus gesehen, eine solche Substruktur entsteht. grep{} ist der Filter und im 2. map{} werden die Originalwerte wieder zusammengeführt.
my @names = qw(
mueller_1444939602
meier_1445366036
meier_1445366108
schulze_1444858516
schulze_1445013037
schulze_1445282747
feuerstein_1445284323
feuerstein_1445284604
feuerstein_1445361774
);
my @filtered = map{ $_->[0] } grep{ $_->[1][0] eq 'schulze' } map{ [$_, [split("_", $_)] ] } @names;
print Dumper \@filtered;
# Dumper gibt aus:
$VAR1 = [
'schulze_1444858516',
'schulze_1445013037',
'schulze_1445282747'
];