use warnings; use strict; my @routers = ( "R1", "R2", "R3" ); my %interfaces = ( R1R0 => 1, R1R6 => 2, R2R0 => 3, R2R6 => 1, R3R61 => 2, R3R62 => 3, ); for my $r (@routers) { my @ifs = grep {/^\Q$r\E\D/} keys %interfaces; for my $i (@ifs) { print "Router $r Interface $i\n"; } }