$ perl -Mre=debug -e'/$_/ for 1..2' 2>&1 | grep Compiling Compiling REx "1" Compiling REx "2" $ perl -Mre=debug -e'$x="foo"; /$x/ for 1..2' 2>&1 | grep Compiling Compiling REx "foo" #### my $pat = 'id\\d+'; while (<>) { print if /$pat/; } #### my $pat = qr/id\d+/; while (<>) { print if /$pat/; } #### my @pats = ( qr/fo*/, qr/ba./, qr/w+3/ ); while (<>) { for my $pat (@pats) { print if /$pat/; } } #### my @handlers = ( { pattern => qr/.../, callback => sub { ... } }, { pattern => qr/.../, callback => sub { ... } }, { pattern => qr/.../, callback => sub { ... } }, ); for my $line (@lines) { for my $handler (@handlers) { if (my @params = ($line =~ $handler->{$pattern})) { my $func = $handler->{callback}; $func->(@params) if $func; } } }