use Safe; #my $stranger_danger = '(?{ system("touch /tmp/foobar") })'; my $stranger_danger = '\d'; my @vals = ( 'a', 'b', 'c', '1', '2' ); my $test_env = new Safe; $test_env->permit( 'regcomp' ); my $tester = $test_env->wrap_code_ref( sub { $_ =~ qr/$stranger_danger/ } ); print "Safely matched ", join( ', ', grep { $tester->( $_ ) } @vals ), "\n";