Filtrar elementos de una matriz con elementos de otra matriz en Perl 6

Quiero filtrar elementos de@array que comienzan con elementos de@search:

my @array = "aaaaa" .. "fffff";
my @search = "aaaa" .. "cccc";
.put for @array .grep: /^ @search /;

El problema es que lleva 19 segundos. Asiqueprecompilar elregex paragrep, y todo el programa se ve así:

my @array = "aaaaa" .. "fffff";
my @search = "aaaa" .. "cccc";

my $search = "/@search.join('|')/".EVAL;

.put for @array .grep: * ~~ /^ <$search> /;

Ahora toma 0.444s.

La pregunta: ¿hay un método Perl 6 incorporado para hacer tales cosas? Algo así como insertar unjunction en unaregex...

Respuestas a la pregunta(3)

Su respuesta a la pregunta