The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/env perl

use feature 'say';
use strict;
use utf8;
use warnings;
use warnings  qw(FATAL utf8);    # Fatalize encoding glitches.
use open      qw(:std :utf8);    # Undeclared streams in UTF-8.
use charnames qw(:full :short);  # Unneeded in v5.16.

use Encode; # For encode() and decode().

# ---------

my($correct) = 'Léon Brocard';
my($copy)    = \$correct;

say "Correct:        $correct";
say "Original:       $$copy (not overwritten the way Encode used to do)";

my($encoded)      = encode('utf-8', $correct);
my($utf8_encoded) = $correct;

utf8::encode($utf8_encoded);

say "Encoded:        $encoded";
say "utf8::encode:   $utf8_encoded";
say "Double encoded: ", encode('utf-8', $encoded);

my($decoded) = decode('utf-8', $correct);

say "Decoded: $decoded";
#say "Double decoded: ", decode('utf-8', $decoded);
say "Original:       $$copy (not overwritten the way Encode used to do)";