use warnings; use strict; use Test::More; sub exception (&) { eval { shift->(); 1 } ? undef : ($@ || die) } my %_interp_map = ( '\\'=>'\\', '$'=>'$' ); # or use String::Unescape sub interpolate { my $str = shift; $str =~ s{ (?