$string =~ /^[smtwhfa]*$/ #### $string =~ /^[smtwhfa]*(?![smtwhfa])$/ $string =~ /^[s{1}m{1}t{1}w{1}h{1}f{1}a{1}]*$/ $string =~ /^([smtwhfa])(?!\1)*$/ #### my $string = "smasm"; my @array = split(//, $string); my %hash; foreach(@array) { $hash{$_} ++; } foreach(keys %hash) { if($hash{$_} > 1) { print "ERROR\n"; last; } }