#!/usr/bin/perl -wT use strict; my %validLanguages = ( "de" => "german", "en" => "english", "es" => "spanish", "fr" => "french", "it" => "italian", "ja" => "japanise", "ko" => "korean", "ru" => "russian", "sv" => "WHATS THIS", "zh" => "WHATS THIS", "zh_TW" => "WHATS THIS" ); # test it for ('dog','cat','de,en',' ',',,,','deensvzh') { printf "%-10s %s a list of languages\n", "'$_'", (isItJustAListOfLanguages($_) ? "is" : "is NOT"); } sub isItJustAListOfLanguages{ my $text = shift; my @tokens = (keys %validLanguages, '\s',','); my $tokenpatt = join('|',@tokens); return $text =~ /^($tokenpatt)+$/; } __END__ 'dog' is NOT a list of languages 'cat' is NOT a list of languages 'de,en' is a list of languages ' ' is a list of languages ',,,' is a list of languages 'deensvzh' is a list of languages