use Modern::Perl; my $randword = join '', ('A'..'Z')[ map rand 26, 1..8 ]; say $randword; say "Make a word with the above characters"; my $word = <>; chomp $word; my $regex = (join '?', sort split '', $randword) . '?'; $word = join '', sort split '', $word; say "Comparing $word with $regex"; if ($word and $word =~ m/^$regex$/i){ say 'OK'; } else { say 'NOT OK'; }