use strict; use warnings; no warnings 'redefine'; for ( [ "Symbol, use utf8: " => "use utf8; sub ∃ {}" ], [ "Symbol, no utf8: " => "no utf8; sub ∃ {}" ], [ "Russian, use utf8: " => "use utf8; sub трщь {}" ], [ "Russian, no utf8: " => "no utf8; sub трщь {}" ], ) { print $_->[0], eval "$_->[1]; 1" ? "Success\n" : $@; }