.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" 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 "Software::Copyright 3pm" .TH Software::Copyright 3pm "2022-12-29" "perl v5.36.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" Software::Copyright \- Copyright class .SH "VERSION" .IX Header "VERSION" version 0.007 .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use Software::Copyright; \& \& my $copyright = Software::Copyright\->new(\*(Aq2020,2021, Joe \*(Aq); \& \& # stringification \& my $s = "$copyright"; # => is "2020, 2021, Joe " \& \& # add with merge \& $copyright\->merge(\*(Aq2018\-2020 Averell\*(Aq); \& \& # after addition \& $s = "$copyright"; # => is "2020, 2021, Joe \en2018\-2020, Averell" \& \& # merge statement which adds email \& $copyright\->merge(\*(Aq2016, Averell \*(Aq); \& \& $s = "$copyright"; # => is "2020, 2021, Joe \en2016, 2018\-2020, Averell " .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This class holds a copyright statement, i.e. a set of year range, name and email. .SH "CONSTRUCTOR" .IX Header "CONSTRUCTOR" The constructor is called with a copyright statement string. This string can be spread on several lines. The constructor is also compatible with the string given by Debian's licensecheck, i.e. the statements can be separated by "\f(CW\*(C`/\*(C'\fR". .SH "Methods" .IX Header "Methods" .SS "statement" .IX Subsection "statement" Get the Software::Copyright::Statement object of a given user. .SS "statement_list" .IX Subsection "statement_list" Returns a list of Software::Copyright::Statement object for all users. .SS "stringify" .IX Subsection "stringify" Returns a string containing a cleaned up copyright statement. .SS "is_valid" .IX Subsection "is_valid" Returns true if the copyright contains valid records, i.e. records with names. .SS "owners" .IX Subsection "owners" Return a list of statement owners. An owner is either a name or a record. .SS "statement" .IX Subsection "statement" Returns the Software::Copyright::Statement object for the given owner: .PP .Vb 1 \& my $statement = $copyright\->statement(\*(AqJoe Dalton\*(Aq); .Ve .SS "merge" .IX Subsection "merge" Merge in a statement. This statement is either merged with a existing statement when the owner match or appended to the list of statements. .PP The statement parameter can either be a string or an Software::Copyright::Statement object. .SS "contains" .IX Subsection "contains" Return 1 if the other copyright is contained in current copyright, i.e. all other statements are contained in current statements (See \&\*(L"contains\*(R" in Copyright::Statement for details on statement containment). .PP For instance: .IP "\(bu" 4 \&\f(CW\*(C`2016, Joe\*(C'\fR copyright is contained in \f(CW\*(C`2014\-2020, Joe\*(C'\fR copyright. .IP "\(bu" 4 \&\f(CW\*(C`2016, Joe\*(C'\fR is contained in \f(CW\*(C`2014\-2020, Joe / 2019, Jack\*(C'\fR .IP "\(bu" 4 \&\f(CW\*(C`2010, Joe\*(C'\fR is \fBnot\fR contained in \f(CW\*(C`2014\-2020, Joe\*(C'\fR .SH "Operator overload" .IX Header "Operator overload" Operator \f(CW""\fR, \f(CW\*(C`eq\*(C'\fR and \f(CW\*(C`ne\*(C'\fR are overloaded. .SH "See also" .IX Header "See also" Software::Copyright::Statement, Software::Copyright::Owner .SH "AUTHOR" .IX Header "AUTHOR" Dominique Dumont .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" This software is Copyright (c) 2022 by Dominique Dumont . .PP This is free software, licensed under: .PP .Vb 1 \& The GNU General Public License, Version 3, June 2007 .Ve