Current File : //usr/local/apps/perl/man/man3/Mozilla::PublicSuffix.3
.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings.  \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
.    ds -- \(*W-
.    ds PI pi
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
.    ds L" ""
.    ds R" ""
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds -- \|\(em\|
.    ds PI \(*p
.    ds L" ``
.    ds R" ''
.    ds C`
.    ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\"
.\" If the F register is >0, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.\"
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.nr rF 0
.if \n(.g .if rF .nr rF 1
.if (\n(rF:(\n(.g==0)) \{\
.    if \nF \{\
.        de IX
.        tm Index:\\$1\t\\n%\t"\\$2"
..
.        if !\nF==2 \{\
.            nr % 0
.            nr F 2
.        \}
.    \}
.\}
.rr rF
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
.    \" fudge factors for nroff and troff
.if n \{\
.    ds #H 0
.    ds #V .8m
.    ds #F .3m
.    ds #[ \f1
.    ds #] \fP
.\}
.if t \{\
.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
.    ds #V .6m
.    ds #F 0
.    ds #[ \&
.    ds #] \&
.\}
.    \" simple accents for nroff and troff
.if n \{\
.    ds ' \&
.    ds ` \&
.    ds ^ \&
.    ds , \&
.    ds ~ ~
.    ds /
.\}
.if t \{\
.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
.    \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
.    \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
.    \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
.    ds : e
.    ds 8 ss
.    ds o a
.    ds d- d\h'-1'\(ga
.    ds D- D\h'-1'\(hy
.    ds th \o'bp'
.    ds Th \o'LP'
.    ds ae ae
.    ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "Mozilla::PublicSuffix 3"
.TH Mozilla::PublicSuffix 3 "2025-08-18" "perl v5.30.0" "User Contributed Perl Documentation"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
Mozilla::PublicSuffix \- Get a domain name's public suffix via the Mozilla Public Suffix List
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.Vb 2
\&    use feature qw(say);
\&    use Mozilla::PublicSuffix qw(public_suffix);
\&
\&    say public_suffix(\*(Aqorg\*(Aq);       # \*(Aqorg\*(Aq
\&    say public_suffix(\*(Aqperl.org\*(Aq);  # \*(Aqorg\*(Aq
\&    say public_suffix(\*(Aqperl.orc\*(Aq);  # undef
\&    say public_suffix(\*(Aqga.gov.au\*(Aq); # \*(Aqgov.au\*(Aq
\&    say public_suffix(\*(Aqga.goo.au\*(Aq); # undef
.Ve
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
This module provides a single function that returns the \fIpublic suffix\fR of a
domain name by referencing a parsed copy of Mozilla's Public Suffix List.
From the official website at <http://publicsuffix.org/>:
.Sp
.RS 4
A \*(L"public suffix\*(R" is one under which Internet users can directly register names.
Some examples of public suffixes are com, co.uk and pvt.k12.wy.us. The Public
Suffix List is a list of all known public suffixes.
.RE
.PP
A copy of the official list is bundled with the distribution. As the official
list continues to be updated, the bundled copy will inevitably fall out of date.
Aside from new releases always including the latest version of the list, this
distribution's installer provides the option (defaults to \*(L"No\*(R") to check for a
new version of the list and download/use it if one is found.
.SH "FUNCTIONS"
.IX Header "FUNCTIONS"
.IP "public_suffix($domain)" 4
.IX Item "public_suffix($domain)"
Exported on request. Simply returns the public suffix of the passed domain name,
or \f(CW\*(C`undef\*(C'\fR if either the domain name is not well-formed or the public suffix is
not found.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
.IP "Domain::PublicSuffix" 4
.IX Item "Domain::PublicSuffix"
Similar to this module, with an object-oriented interface and somewhat
alternative interpretation of the rules Mozilla stipulates for determining a
public suffix.
.IP "IO::Socket::SSL::PublicSuffix" 4
.IX Item "IO::Socket::SSL::PublicSuffix"
Ships with \f(CW\*(C`IO::Socket::SSL\*(C'\fR, used by many \s-1HTTP\s0 client libraries for
\&\s-1SSL/TLS\s0 support, and makes it easy to use the current version of the
public suffix list at run-time.
.SH "BUG REPORTS"
.IX Header "BUG REPORTS"
Please submit bug reports to <https://rt.cpan.org/Public/Dist/Display.html?Name=Mozilla::PublicSuffix>.
.PP
If you would like to send patches, please send a git pull request to <mailto:bug\-Mozilla::PublicSuffix@rt.cpan.org>.
.SH "ORIGINAL AUTHOR"
.IX Header "ORIGINAL AUTHOR"
Richard Simo\*~es \f(CW\*(C`<rsimoes AT cpan DOT org>\*(C'\fR
.SH "CURRENT MAINTAINER"
.IX Header "CURRENT MAINTAINER"
Tom Hukins
.SH "COPYRIGHT & LICENSE"
.IX Header "COPYRIGHT & LICENSE"
Copyright X 2013 Richard Simo\*~es. This module is released under the terms of the
\&\fB\s-1MIT\s0 License\fR and may be modified and/or redistributed under the same or any
compatible license.