I though that at first too. But the subroutine has a prompt for user input after the previous standard output. So the loop stops after every standard out until the array is empty. Both of the print statements are printing after the subroutine so it should be printing same @list_words. Right?
The subroutine asks the user for a string of characters and uses them as a character set in a regex. Any of the words that don't contain any of the characters are removed from the list.
sub test_if_letters_are_included{
# Ask for input
say 'Which letters would you like to use?:';
# Capture user input
my $input = <STDIN>;
# Remove the trailing newline
chomp $input;
# Change the input to upper case.
$input = uc $input;
# create a character set for the regex
my $regex ="[$input]";
my @temp_list;
for (@list_words) {
if ($_ =~ /$regex/g) {
push @temp_list, $_;
}
}
@list_words = @temp_list;
}
|