my @fields = qw(d map proto uri1 uri2); if (@vars{@fields} = $line=~m#(\d+)\s+(map|reverse_map)\s+(\w+)://(.*?)\s+(\5)://(.*?)$#) { my $result = $template->fill_in(HASH => \%vars); }