Net::IDN::Overview(3)
πΈ NAME πΈ
Net::IDN::Overview(3) β from the User Contributed Perl Documentation manual, bestie, and the NAME line literally spells it Net::IDN::Overwiew (yes, Overwiew, typo and all π): Internationalized Domain Names for Applications (IDNA).
π DESCRIPTION π
The Net::IDN::* modules give perl programmes a whole framework for handling Internationalized Domain Names for Applications (IDNA). This document is the overview: it shows you the available modules so you can choose the best module for the task at hand. No cap, that is the whole point. β¨
β¨ AVAILABLE MODULES β¨
π HIGH-LEVEL (USE THIS) π
Net::IDN::Encodeβ your high-level interface for converting domain names, plus email addresses for convenience. Use this module if you just want to convert domain names and do not care how this is done internally. Currently, this module usesNet::IDN::UTS46. However, this might change in the future if another specification (e.g. a revision ofIDNA2008) becomes more appropriate. The author aims forNet::IDN::Encodeto always use the specification that will provide the "least surprising" results. Itβs giving βjust let me convert my domain in peace.β π
π STANDARD-SPECIFIC π
These modules implement different versions of the the IDNA specifications β yes, the the, the original typo is staying π. Use one of these modules only if you require compatibility with a specific incarnation of IDNA β periodt.
Net::IDN::IDNA2003β implements the original IDNA specification, released in 2003 (IDNA2003), which is now obsolete.IDNA2003is defined inRFC 3490(http://tools.ietf.org/rfc/3490) and related documents.Net::IDN::UTS46β implements Unicode Technical Standard #46 (UTS #46,http://unicode.org/reports/tr46/), Unicode IDNA Compatibility Processing. This specification supports all domain names allowed under eitherIDNA2003orIDNA2008.
π¦ ENCODING π¦
Net::IDN::Punycodeβ performs the actual conversion between the ASCII and Unicode form of strings. Punycode is defined inRFC 3492(http://tools.ietf.org/rfc/3492) and related documents. Usually, it is not a good idea to use this module directly. If you convert domain labels (or other strings) without proper preparation, you may end up with an ASCII encoding that is not interoperable or poses security issues due to spoofing. Even if you think that your domain names are valid and in already-mapped format, you might be fooled by different Unicode normalization forms (for example, some environments might automatically convert your data toNFD, which breaks IDNA). Thatβs the π part, fr fr.
π DEPRECATED/COMPATIBILITY π
These modules are only maintained in order to not break applications that might rely on them.
Encode::Punycodeβ provides an Encode plugin for Punycode. As Punycode is not a general-purpose encoding, there are limited applications.IDNA::Punycodeβ has an API depending on global variables. Don't use this module.
π DISTRIBUTIONS π
Net-IDN-Encodeβ is the main distribution covering the most common cases for converting domain names between ASCII and Unicode. The author tries to keep the dependency chain as small as possible; currently this distribution only depends onperl 5.8.5(including the core moduleUnicode::Normalize).Net-IDN-IDNA2003β provides theNet::IDN::IDNA2003module. This is separate because it has an dependency onUnicode::Stringprep(throughNet::IDN::Nameprep).Encode-Punycode,IDNA-Punycodeβ are separate because they are of limited use to the average user/perl programmer.
π AUTHOR π
Claus FΓ€rber
Currently maintained by Robert Rothenberg <perl@rhizomnic.com> and Paul Johnson <paul@pjcj.net>.
Signed off with perl v5.44.0 and dated 2026-10-30 β slay, bestie, go convert some domain names. πβ¨π«Ά
π¦ where this page comes from
- arch rolling: perl-net-idn-encode 2.600-1 Β· GPL-1.0-or-later AND Artistic-1.0-Perl
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms