Не совсем понятно, что вы хотите сделать. Вот несколько мыслей.
Вы пытаетесь посчитать количество гласных? В этом случае tr выполнит работу:
my $count = tr/aeiou// ;
printf("string:%-20s count:%d\n" , $_ , $count ) ;
вывод:
string:book count:2
string:stackoverflow count:4
Или извлечь гласные
my @array = / ( [aeiou] ) /xg ;
print Dumper \@array ;
Вывод из "stackoverflow question"
$VAR1 = [
'a',
'o',
'e',
'o',
'u',
'e',
'i',
'o'
];
Или извлекать последовательности гласных
my @array = / ( [aeiou]+ ) /xg ;
print Dumper \@array ;
Вывод из "stackoverflow question"
$VAR1 = [
'a',
'o',
'e',
'o',
'ue',
'io'
];