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