http://www.perlmonks.org?node_id=447959

use charnames ":full"; BEGIN{ my $s = $^H{charnames}; $^H{charnames} = + sub { $_[0] =~ /^\$(.*)/s ? &$s($$1) : &$s; } } BEGIN { $name = "LAT +IN SMALL LETTER P"; } print "j\N{LATIN SMALL LETTER A}\N{$name}h\n"

Update: short version:

use charnames ":short"; BEGIN{ my $s = $^H{charnames}; $^H{charnames} += sub { $_[0] =~ /^\$(.*)/s ? &$s($$1) : &$s; } } BEGIN { $name = "la +tin:p"; } print "j\N{latin:a}\N{$name}h\n"