.\" -*- mode: troff; coding: utf-8 -*-
.\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.48)
.\"
.\" 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
..
.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
.ie n \{\
. ds C` ""
. ds C' ""
'br\}
.el\{\
. 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
.\"
.\" Required to disable full justification in groff 1.23.0.
.if n .ds AD l
.\" ========================================================================
.\"
.IX Title "Software::License 3"
.TH Software::License 3 2026-10-26 "perl v5.44.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 SYNOPSIS
.IX Header "SYNOPSIS"
.Vb 3
\& my $license = Software::License::Discordian\->new({
\& holder => \*(AqRicardo Signes\*(Aq,
\& });
\&
\& print $output_fh $license\->fulltext;
.Ve
.PP
.Vb 1
\& my $license = $subclass\->new(\e%arg);
.Ve
.PP
This method returns a new license object for the given license class. Valid
arguments are:
.PP
\&\f(CW\*(C`program\*(C'\fR and \f(CW\*(C`Program\*(C'\fR arguments may be specified both, either one or none.
Each argument, if not specified, is defaulted to another one, or to properly
capitalized "this program", if both arguments are omitted.
.PP
These methods are attribute readers.
.PP
Name of software for using in the middle of a sentence.
.PP
The method returns value of \f(CW\*(C`program\*(C'\fR constructor argument (if it evaluates as true, i. e.
defined, non\-empty, non\-zero), or value of \f(CW\*(C`Program\*(C'\fR constructor argument (if it is true), or
"this program" as the last resort.
.PP
Name of software for using in the middle of a sentence.
.PP
The method returns value of \f(CW\*(C`Program\*(C'\fR constructor argument (if it is true), or value of \f(CW\*(C`program\*(C'\fR
constructor argument (if it is true), or "This program" as the last resort.
.PP
This method returns the name of the license, suitable for shoving in the middle
of a sentence, generally with a leading capitalized "The."
.PP
This method returns the URL at which a canonical text of the license can be
found, if one is available. If possible, this will point at plain text, but it
may point to an HTML resource.
.PP
This method returns a snippet of text, usually a few lines, indicating the
copyright holder and year of copyright, as well as an indication of the license
under which the software is distributed.
.PP
This method returns the full text of the license.
.PP
This method returns the complete text of the license, preceded by the copyright
notice.
.PP
This method returns the version of the license. If the license is not
versioned, this method will return false.
.PP
This method returns the string that should be used for this license in the CPAN
META.yml file, according to the CPAN Meta spec v1, or undef if there is no
known string to use.
.PP
This method may also be invoked as \f(CW\*(C`meta_yml_name\*(C'\fR for legacy reasons.
.PP
This method returns the string that should be used for this license in the CPAN
META.json or META.yml file, according to the CPAN Meta spec v2, or undef if
there is no known string to use. If this method does not exist, and
\&\f(CW\*(C`meta_name\*(C'\fR returns open_source, restricted, unrestricted, or unknown, that
value will be used.
.PP
This method should return the string with the spdx identifier as indicated by
.SH "LOOKING UP LICENSE CLASSES"
.IX Header "LOOKING UP LICENSE CLASSES"
If you have an entry in a \fIMETA.yml\fR or \fIMETA.json\fR file, or similar
metadata, and want to look up the Software::License class to use, there are
useful tools in Software::LicenseUtils.
.SH TODO
.IX Header "TODO"
.SH "SEE ALSO"
.IX Header "SEE ALSO"
The specific license:
.PP
Extra licenses are maintained on CPAN in separate modules.
.PP
The App::Software::License module comes with a script
software\-license ,
which provides a command\-line interface
to Software::License.
.SH "POD ERRORS"
.IX Header "POD ERRORS"
Hey! \fBThe above document had some coding errors, which are explained below:\fR
.IP "Around line 17:" 4
.IX Item "Around line 17:"
Unknown directive: =method
.IP "Around line 48:" 4
.IX Item "Around line 48:"
Unknown directive: =method
.IP "Around line 50:" 4
.IX Item "Around line 50:"
Unknown directive: =method
.IP "Around line 65:" 4
.IX Item "Around line 65:"
Unknown directive: =method
.IP "Around line 77:" 4
.IX Item "Around line 77:"
Unknown directive: =method
.IP "Around line 88:" 4
.IX Item "Around line 88:"
Unknown directive: =method
.IP "Around line 93:" 4
.IX Item "Around line 93:"
Unknown directive: =method
.IP "Around line 99:" 4
.IX Item "Around line 99:"
Unknown directive: =method
.IP "Around line 109:" 4
.IX Item "Around line 109:"
Unknown directive: =method
.IP "Around line 117:" 4
.IX Item "Around line 117:"
Unknown directive: =method
.IP "Around line 129:" 4
.IX Item "Around line 129:"
Unknown directive: =method
.IP "Around line 146:" 4
.IX Item "Around line 146:"
Unknown directive: =method
.IP "Around line 154:" 4
.IX Item "Around line 154:"
Unknown directive: =method
.IP "Around line 180:" 4
.IX Item "Around line 180:"
Unknown directive: =method