SYNOPSIS
use Net::IDN::PP;
say Net::IDN::PP->decode('xn--caf-dma.com'); # prints café.com
say Net::IDN::PP->decode('café.com'); # prints xn--caf-dma.com
DESCRIPTION
Net::IDN::PP is a pure Perl IDN encoder/decoder. The decode() method takes an
"A-label" and decodes it, and encode() takes a "U-label" and encodes it.
Other modules exist which provide similar functionality, but they all rely on external C libraries such as libidn/libidn2 or ICU.
IMPORTANT NOTE
This module only implements the Punycode algorithm from RFC 3492; it does not implement any of the "Nameprep" logic described in IDNA2003 or IDNA2008. This makes it unsuitable for use in provisioning (domain registrar or registry) systems, but it should work fine if you don't mind working on a "garbage in, garbage out" basis.