#!/usr/bin/perl use strict; use warnings; my @list = 0..9; my %hash; $hash{$_} = 0 for @list; my $valid = 0; my $test = ''; while (!$valid) { $valid = 1; $test = 'This sentence contains '; $test .= "$hash{$_} ${_}s, " for @list; $test .= '. - '; print $test; my %test_hash; for (@list) { $test_hash{$_} = eval("\$test =~ tr/$_//"); $valid = 0 if ($hash{$_} != $test_hash{$_}); $hash{$_} = $test_hash{$_}; } ($valid == 1) ? print "yes\n" : print "no\n"; }