use strict; use warnings; my %hash = ( asd => 1 ); sub ff { print utf8::is_utf8($_[0]) ? 1 : 0, "\n"; } eval { use utf8; ff(%hash); # now prints 0 }; #### The "use utf8" pragma tells the Perl parser to allow UTF-8 in the pro- gram text in the current lexical scope (allow UTF-EBCDIC on EBCDIC based platforms). ... Do not use this pragma for anything else than telling Perl that your script is written in UTF-8. The utility functions described below are useful for their own purposes, but they are not really part of the "pragmatic" effect.