GNU Awk (gawk) isn't really Unicode-capable. Perl is. Using a2p in this case is just causing you needless confusion, especially if your objective is to learn how to handle Unicode using Perl. Your Unicode text substitution is trivially accomplished in Perl 5.18, which is the version you said you're using.
use strict;
use warnings;
use v5.16;
binmode STDOUT, ':encoding(UTF-8)';
printf "\N{U+FEFF}"; # Unicode byte order mark
my $text = "Unicode code point U+100049: \N{U+100049}\n";
print $text;
$text =~ s/100049/002190/;
$text =~ s/\N{U+100049}/\N{U+002190}/;
print $text;
exit 0;
__END__
Unicode code point U+100049:
Unicode code point U+002190: ←