#!/usr/bin/perl -w use strict; my $a; $a = q{ foreach (1..2) {} print "Reachable?\n"; }; 'a' =~ /a(?{eval$a})/; $a = q{ map {} foreach 1..2; print "Unreachable?\n"; }; 'a' =~ /a(?{eval$a})|b(?{syntax error})/; 0 ? ( unreachable syntax error ) : ( print "Reachable\n" ); 'a' =~ /b(?{print "NO\n"})|a(?{print "Reachable\n"})|a(?{print "NO\n"})/;