in reply to utf8 characters in Data::Dumper
Perl uses an internal format for strings, and it's not necessarily utf8. So whenever you want to output a non-ASCII string, you must explicitly encode it. I don't think Data::Dumper changes anything about this issue. It will output the string as it is encoded, so you really need to encode it first with an encoding supported by your terminal (and that will probably be utf8).
use Encode qw(encode);
print Dumper encode 'utf8', "Hiragana Letter あ";
(here I tried to paste the actual hiragana letter あ but it did not work out well inside the code markup.)
IIRC the utf8 pragma only tells Perl that you intend to use a utf8 encoded file as a source for your program. It does not say anything about ouput to stdout.