my $name = '(\w[\w-]*\w?)'; # any valid hostname segment my $nnam = "(($name\.)*$name)"; # one or more "name" segments my %domainnames = ( "$nname\.com" => 'a commercial domain', "$nname\.edu" => 'an educational institution', )