#!/usr/bin/env perl use strict; use warnings; use feature 'say'; my $randword = join'', ('A'..'Z')[ map rand 26, 1..8 ]; print "Enter a word using '$randword': "; chomp( my $input = ); die "You didn't enter anything..." unless $input; my %rand_hash; $rand_hash{$_}++ for split //, $randword; my %user_hash; $user_hash{$_}++ for split //, uc $input; my $bad_word; foreach (sort keys %user_hash) { if ( ! exists $rand_hash{$_} || $user_hash{$_} > $rand_hash{$_} ) { $bad_word = 1; say "Shame on you! You used too many $_\'s!"; } } say "WOW! You are amazing and so is '$input'!" unless $bad_word;