#!/usr/bin/perl use strict; use warnings; # cf pl_test/751890.pl my @myarray=qw/two three threee fouuuuur five septigesimal sodium hexaflouride/; my @vowels=qw/a e i o u/; my @words_having_3_vowels; for my $var(@myarray) { my $seen; for my $vowel(@vowels) { if ($var =~ m/$vowel/) { $seen++; if ($seen == 3) { push @words_having_3_vowels, $var; next; } } } } for my $words(@words_having_3_vowels) { print "$words \n"; } =head execution output: pl_test/751890_a.pl septigesimal sodium hexaflouride =cut #### #!/usr/bin/perl use strict; use warnings; my @myarray=qw/two three threee fouuuuur five septigesimal/; my @vowels=qw/a e i o u/; my @words_having_3_vowels; foreach(@myarray) { my $var=$_; for ( my $p=0; $p<5 ; $p++ ) { for ( my $q=0; $q<5 ; $q++ ) { for ( my $r=0; $r<5 ; $r++ ) { if ( $var =~ /^(.*)($vowels[$p])(.*)$vowels[$q](.*)$vowels[$r](.*)$/ ) { push @words_having_3_vowels, $var; } } } } } for my $result(@words_having_3_vowels) { print "|$result|\n"; } =head execution output: |threee| |fouuuuur| |fouuuuur| |septigesimal| |septigesimal| |septigesimal| |septigesimal| |septigesimal| |septigesimal| |septigesimal| |septigesimal| =cut