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', ); #### 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', ); #### my $name = qr/(\w[\w-]*\w?)/; # any valid hostname segment my $nnam = qr/(($name\.)*$name)/; # one or more "name" segments my @domainnames = ( { re => qr/$nname\.com/, desc => 'a commercial domain' }, { re => qr/$nname\.edu/, desc => 'an educational institution' }, ); #### 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', ); my %domainnames; foreach (0 .. @domainnames/2-1) { $domainnames{$domainnames[$_*2+0]} = { re => $domainnames[$_*2+0], desc => $domainnames[$_*2+1], }; }