c:\@Work\Perl\monks>perl -wMstrict -MData::Dump -le "my @answers = ('Bad', 'Good', 'Not good enough'); ;; my %known = map { canonical($_) => 1 } @answers; ;; UI: { chomp(my $user_answer = ); last UI if canonical($user_answer) eq canonical('q'); ;; if ($known{canonical($user_answer)}) { print qq{'$user_answer' known}; } else { print qq{'$user_answer' is UNKNOWN}; $known{ canonical($user_answer) } = 1; } ;; redo UI; } ;; dd \%known; ;; sub canonical { return lc $_[0]; } " foo 'foo' is UNKNOWN foo 'foo' known Junk 'Junk' is UNKNOWN junk 'junk' known total crap 'total crap' is UNKNOWN Total Crap 'Total Crap' known q { "bad" => 1, "foo" => 1, "good" => 1, "junk" => 1, "not good enough" => 1, "total crap" => 1, }