Revision fd0bcc7d
Von Moritz Bunkus vor mehr als 5 Jahren hinzugefügt
doc/modules/LICENSE.CGI-Ajax | ||
---|---|---|
1 |
Terms of Perl itself |
|
2 |
|
|
3 |
a) the GNU General Public License as published by the Free |
|
4 |
Software Foundation; either version 1, or (at your option) any |
|
5 |
later version, or |
|
6 |
b) the "Artistic License" |
|
7 |
|
|
8 |
--------------------------------------------------------------------------- |
|
9 |
|
|
10 |
The General Public License (GPL) |
|
11 |
Version 2, June 1991 |
|
12 |
|
|
13 |
Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, |
|
14 |
Cambridge, MA 02139, USA. Everyone is permitted to copy and distribute |
|
15 |
verbatim copies of this license document, but changing it is not allowed. |
|
16 |
|
|
17 |
Preamble |
|
18 |
|
|
19 |
The licenses for most software are designed to take away your freedom to share |
|
20 |
and change it. By contrast, the GNU General Public License is intended to |
|
21 |
guarantee your freedom to share and change free software--to make sure the |
|
22 |
software is free for all its users. This General Public License applies to most of |
|
23 |
the Free Software Foundation's software and to any other program whose |
|
24 |
authors commit to using it. (Some other Free Software Foundation software is |
|
25 |
covered by the GNU Library General Public License instead.) You can apply it to |
|
26 |
your programs, too. |
|
27 |
|
|
28 |
When we speak of free software, we are referring to freedom, not price. Our |
|
29 |
General Public Licenses are designed to make sure that you have the freedom |
|
30 |
to distribute copies of free software (and charge for this service if you wish), that |
|
31 |
you receive source code or can get it if you want it, that you can change the |
|
32 |
software or use pieces of it in new free programs; and that you know you can do |
|
33 |
these things. |
|
34 |
|
|
35 |
To protect your rights, we need to make restrictions that forbid anyone to deny |
|
36 |
you these rights or to ask you to surrender the rights. These restrictions |
|
37 |
translate to certain responsibilities for you if you distribute copies of the |
|
38 |
software, or if you modify it. |
|
39 |
|
|
40 |
For example, if you distribute copies of such a program, whether gratis or for a |
|
41 |
fee, you must give the recipients all the rights that you have. You must make |
|
42 |
sure that they, too, receive or can get the source code. And you must show |
|
43 |
them these terms so they know their rights. |
|
44 |
|
|
45 |
We protect your rights with two steps: (1) copyright the software, and (2) offer |
|
46 |
you this license which gives you legal permission to copy, distribute and/or |
|
47 |
modify the software. |
|
48 |
|
|
49 |
Also, for each author's protection and ours, we want to make certain that |
|
50 |
everyone understands that there is no warranty for this free software. If the |
|
51 |
software is modified by someone else and passed on, we want its recipients to |
|
52 |
know that what they have is not the original, so that any problems introduced by |
|
53 |
others will not reflect on the original authors' reputations. |
|
54 |
|
|
55 |
Finally, any free program is threatened constantly by software patents. We wish |
|
56 |
to avoid the danger that redistributors of a free program will individually obtain |
|
57 |
patent licenses, in effect making the program proprietary. To prevent this, we |
|
58 |
have made it clear that any patent must be licensed for everyone's free use or |
|
59 |
not licensed at all. |
|
60 |
|
|
61 |
The precise terms and conditions for copying, distribution and modification |
|
62 |
follow. |
|
63 |
|
|
64 |
GNU GENERAL PUBLIC LICENSE |
|
65 |
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND |
|
66 |
MODIFICATION |
|
67 |
|
|
68 |
0. This License applies to any program or other work which contains a notice |
|
69 |
placed by the copyright holder saying it may be distributed under the terms of |
|
70 |
this General Public License. The "Program", below, refers to any such program |
|
71 |
or work, and a "work based on the Program" means either the Program or any |
|
72 |
derivative work under copyright law: that is to say, a work containing the |
|
73 |
Program or a portion of it, either verbatim or with modifications and/or translated |
|
74 |
into another language. (Hereinafter, translation is included without limitation in |
|
75 |
the term "modification".) Each licensee is addressed as "you". |
|
76 |
|
|
77 |
Activities other than copying, distribution and modification are not covered by |
|
78 |
this License; they are outside its scope. The act of running the Program is not |
|
79 |
restricted, and the output from the Program is covered only if its contents |
|
80 |
constitute a work based on the Program (independent of having been made by |
|
81 |
running the Program). Whether that is true depends on what the Program does. |
|
82 |
|
|
83 |
1. You may copy and distribute verbatim copies of the Program's source code as |
|
84 |
you receive it, in any medium, provided that you conspicuously and appropriately |
|
85 |
publish on each copy an appropriate copyright notice and disclaimer of warranty; |
|
86 |
keep intact all the notices that refer to this License and to the absence of any |
|
87 |
warranty; and give any other recipients of the Program a copy of this License |
|
88 |
along with the Program. |
|
89 |
|
|
90 |
You may charge a fee for the physical act of transferring a copy, and you may at |
|
91 |
your option offer warranty protection in exchange for a fee. |
|
92 |
|
|
93 |
2. You may modify your copy or copies of the Program or any portion of it, thus |
|
94 |
forming a work based on the Program, and copy and distribute such |
|
95 |
modifications or work under the terms of Section 1 above, provided that you also |
|
96 |
meet all of these conditions: |
|
97 |
|
|
98 |
a) You must cause the modified files to carry prominent notices stating that you |
|
99 |
changed the files and the date of any change. |
|
100 |
|
|
101 |
b) You must cause any work that you distribute or publish, that in whole or in |
|
102 |
part contains or is derived from the Program or any part thereof, to be licensed |
|
103 |
as a whole at no charge to all third parties under the terms of this License. |
|
104 |
|
|
105 |
c) If the modified program normally reads commands interactively when run, you |
|
106 |
must cause it, when started running for such interactive use in the most ordinary |
|
107 |
way, to print or display an announcement including an appropriate copyright |
|
108 |
notice and a notice that there is no warranty (or else, saying that you provide a |
|
109 |
warranty) and that users may redistribute the program under these conditions, |
|
110 |
and telling the user how to view a copy of this License. (Exception: if the |
|
111 |
Program itself is interactive but does not normally print such an announcement, |
|
112 |
your work based on the Program is not required to print an announcement.) |
|
113 |
|
|
114 |
These requirements apply to the modified work as a whole. If identifiable |
|
115 |
sections of that work are not derived from the Program, and can be reasonably |
|
116 |
considered independent and separate works in themselves, then this License, |
|
117 |
and its terms, do not apply to those sections when you distribute them as |
|
118 |
separate works. But when you distribute the same sections as part of a whole |
|
119 |
which is a work based on the Program, the distribution of the whole must be on |
|
120 |
the terms of this License, whose permissions for other licensees extend to the |
|
121 |
entire whole, and thus to each and every part regardless of who wrote it. |
|
122 |
|
|
123 |
Thus, it is not the intent of this section to claim rights or contest your rights to |
|
124 |
work written entirely by you; rather, the intent is to exercise the right to control |
|
125 |
the distribution of derivative or collective works based on the Program. |
|
126 |
|
|
127 |
In addition, mere aggregation of another work not based on the Program with the |
|
128 |
Program (or with a work based on the Program) on a volume of a storage or |
|
129 |
distribution medium does not bring the other work under the scope of this |
|
130 |
License. |
|
131 |
|
|
132 |
3. You may copy and distribute the Program (or a work based on it, under |
|
133 |
Section 2) in object code or executable form under the terms of Sections 1 and 2 |
|
134 |
above provided that you also do one of the following: |
|
135 |
|
|
136 |
a) Accompany it with the complete corresponding machine-readable source |
|
137 |
code, which must be distributed under the terms of Sections 1 and 2 above on a |
|
138 |
medium customarily used for software interchange; or, |
|
139 |
|
|
140 |
b) Accompany it with a written offer, valid for at least three years, to give any |
|
141 |
third party, for a charge no more than your cost of physically performing source |
|
142 |
distribution, a complete machine-readable copy of the corresponding source |
|
143 |
code, to be distributed under the terms of Sections 1 and 2 above on a medium |
|
144 |
customarily used for software interchange; or, |
|
145 |
|
|
146 |
c) Accompany it with the information you received as to the offer to distribute |
|
147 |
corresponding source code. (This alternative is allowed only for noncommercial |
|
148 |
distribution and only if you received the program in object code or executable |
|
149 |
form with such an offer, in accord with Subsection b above.) |
|
150 |
|
|
151 |
The source code for a work means the preferred form of the work for making |
|
152 |
modifications to it. For an executable work, complete source code means all the |
|
153 |
source code for all modules it contains, plus any associated interface definition |
|
154 |
files, plus the scripts used to control compilation and installation of the |
|
155 |
executable. However, as a special exception, the source code distributed need |
|
156 |
not include anything that is normally distributed (in either source or binary form) |
|
157 |
with the major components (compiler, kernel, and so on) of the operating system |
|
158 |
on which the executable runs, unless that component itself accompanies the |
|
159 |
executable. |
|
160 |
|
|
161 |
If distribution of executable or object code is made by offering access to copy |
|
162 |
from a designated place, then offering equivalent access to copy the source |
|
163 |
code from the same place counts as distribution of the source code, even though |
|
164 |
third parties are not compelled to copy the source along with the object code. |
|
165 |
|
|
166 |
4. You may not copy, modify, sublicense, or distribute the Program except as |
|
167 |
expressly provided under this License. Any attempt otherwise to copy, modify, |
|
168 |
sublicense or distribute the Program is void, and will automatically terminate |
|
169 |
your rights under this License. However, parties who have received copies, or |
|
170 |
rights, from you under this License will not have their licenses terminated so long |
|
171 |
as such parties remain in full compliance. |
|
172 |
|
|
173 |
5. You are not required to accept this License, since you have not signed it. |
|
174 |
However, nothing else grants you permission to modify or distribute the Program |
|
175 |
or its derivative works. These actions are prohibited by law if you do not accept |
|
176 |
this License. Therefore, by modifying or distributing the Program (or any work |
|
177 |
based on the Program), you indicate your acceptance of this License to do so, |
|
178 |
and all its terms and conditions for copying, distributing or modifying the |
|
179 |
Program or works based on it. |
|
180 |
|
|
181 |
6. Each time you redistribute the Program (or any work based on the Program), |
|
182 |
the recipient automatically receives a license from the original licensor to copy, |
|
183 |
distribute or modify the Program subject to these terms and conditions. You |
|
184 |
may not impose any further restrictions on the recipients' exercise of the rights |
|
185 |
granted herein. You are not responsible for enforcing compliance by third parties |
|
186 |
to this License. |
|
187 |
|
|
188 |
7. If, as a consequence of a court judgment or allegation of patent infringement |
|
189 |
or for any other reason (not limited to patent issues), conditions are imposed on |
|
190 |
you (whether by court order, agreement or otherwise) that contradict the |
|
191 |
conditions of this License, they do not excuse you from the conditions of this |
|
192 |
License. If you cannot distribute so as to satisfy simultaneously your obligations |
|
193 |
under this License and any other pertinent obligations, then as a consequence |
|
194 |
you may not distribute the Program at all. For example, if a patent license would |
|
195 |
not permit royalty-free redistribution of the Program by all those who receive |
|
196 |
copies directly or indirectly through you, then the only way you could satisfy |
|
197 |
both it and this License would be to refrain entirely from distribution of the |
|
198 |
Program. |
|
199 |
|
|
200 |
If any portion of this section is held invalid or unenforceable under any particular |
|
201 |
circumstance, the balance of the section is intended to apply and the section as |
|
202 |
a whole is intended to apply in other circumstances. |
|
203 |
|
|
204 |
It is not the purpose of this section to induce you to infringe any patents or other |
|
205 |
property right claims or to contest validity of any such claims; this section has |
|
206 |
the sole purpose of protecting the integrity of the free software distribution |
|
207 |
system, which is implemented by public license practices. Many people have |
|
208 |
made generous contributions to the wide range of software distributed through |
|
209 |
that system in reliance on consistent application of that system; it is up to the |
|
210 |
author/donor to decide if he or she is willing to distribute software through any |
|
211 |
other system and a licensee cannot impose that choice. |
|
212 |
|
|
213 |
This section is intended to make thoroughly clear what is believed to be a |
|
214 |
consequence of the rest of this License. |
|
215 |
|
|
216 |
8. If the distribution and/or use of the Program is restricted in certain countries |
|
217 |
either by patents or by copyrighted interfaces, the original copyright holder who |
|
218 |
places the Program under this License may add an explicit geographical |
|
219 |
distribution limitation excluding those countries, so that distribution is permitted |
|
220 |
only in or among countries not thus excluded. In such case, this License |
|
221 |
incorporates the limitation as if written in the body of this License. |
|
222 |
|
|
223 |
9. The Free Software Foundation may publish revised and/or new versions of the |
|
224 |
General Public License from time to time. Such new versions will be similar in |
|
225 |
spirit to the present version, but may differ in detail to address new problems or |
|
226 |
concerns. |
|
227 |
|
|
228 |
Each version is given a distinguishing version number. If the Program specifies a |
|
229 |
version number of this License which applies to it and "any later version", you |
|
230 |
have the option of following the terms and conditions either of that version or of |
|
231 |
any later version published by the Free Software Foundation. If the Program does |
|
232 |
not specify a version number of this License, you may choose any version ever |
|
233 |
published by the Free Software Foundation. |
|
234 |
|
|
235 |
10. If you wish to incorporate parts of the Program into other free programs |
|
236 |
whose distribution conditions are different, write to the author to ask for |
|
237 |
permission. For software which is copyrighted by the Free Software Foundation, |
|
238 |
write to the Free Software Foundation; we sometimes make exceptions for this. |
|
239 |
Our decision will be guided by the two goals of preserving the free status of all |
|
240 |
derivatives of our free software and of promoting the sharing and reuse of |
|
241 |
software generally. |
|
242 |
|
|
243 |
NO WARRANTY |
|
244 |
|
|
245 |
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS |
|
246 |
NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY |
|
247 |
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE |
|
248 |
COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM |
|
249 |
"AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR |
|
250 |
IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
|
251 |
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE |
|
252 |
ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE |
|
253 |
PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, |
|
254 |
YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR |
|
255 |
CORRECTION. |
|
256 |
|
|
257 |
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED |
|
258 |
TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY |
|
259 |
WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS |
|
260 |
PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY |
|
261 |
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES |
|
262 |
ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM |
|
263 |
(INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING |
|
264 |
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD |
|
265 |
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY |
|
266 |
OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS |
|
267 |
BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. |
|
268 |
|
|
269 |
END OF TERMS AND CONDITIONS |
|
270 |
|
|
271 |
|
|
272 |
--------------------------------------------------------------------------- |
|
273 |
|
|
274 |
The Artistic License |
|
275 |
|
|
276 |
Preamble |
|
277 |
|
|
278 |
The intent of this document is to state the conditions under which a Package |
|
279 |
may be copied, such that the Copyright Holder maintains some semblance of |
|
280 |
artistic control over the development of the package, while giving the users of the |
|
281 |
package the right to use and distribute the Package in a more-or-less customary |
|
282 |
fashion, plus the right to make reasonable modifications. |
|
283 |
|
|
284 |
Definitions: |
|
285 |
|
|
286 |
- "Package" refers to the collection of files distributed by the Copyright |
|
287 |
Holder, and derivatives of that collection of files created through textual |
|
288 |
modification. |
|
289 |
- "Standard Version" refers to such a Package if it has not been modified, |
|
290 |
or has been modified in accordance with the wishes of the Copyright |
|
291 |
Holder. |
|
292 |
- "Copyright Holder" is whoever is named in the copyright or copyrights for |
|
293 |
the package. |
|
294 |
- "You" is you, if you're thinking about copying or distributing this Package. |
|
295 |
- "Reasonable copying fee" is whatever you can justify on the basis of |
|
296 |
media cost, duplication charges, time of people involved, and so on. (You |
|
297 |
will not be required to justify it to the Copyright Holder, but only to the |
|
298 |
computing community at large as a market that must bear the fee.) |
|
299 |
- "Freely Available" means that no fee is charged for the item itself, though |
|
300 |
there may be fees involved in handling the item. It also means that |
|
301 |
recipients of the item may redistribute it under the same conditions they |
|
302 |
received it. |
|
303 |
|
|
304 |
1. You may make and give away verbatim copies of the source form of the |
|
305 |
Standard Version of this Package without restriction, provided that you duplicate |
|
306 |
all of the original copyright notices and associated disclaimers. |
|
307 |
|
|
308 |
2. You may apply bug fixes, portability fixes and other modifications derived from |
|
309 |
the Public Domain or from the Copyright Holder. A Package modified in such a |
|
310 |
way shall still be considered the Standard Version. |
|
311 |
|
|
312 |
3. You may otherwise modify your copy of this Package in any way, provided |
|
313 |
that you insert a prominent notice in each changed file stating how and when |
|
314 |
you changed that file, and provided that you do at least ONE of the following: |
|
315 |
|
|
316 |
a) place your modifications in the Public Domain or otherwise |
|
317 |
make them Freely Available, such as by posting said modifications |
|
318 |
to Usenet or an equivalent medium, or placing the modifications on |
|
319 |
a major archive site such as ftp.uu.net, or by allowing the |
|
320 |
Copyright Holder to include your modifications in the Standard |
|
321 |
Version of the Package. |
|
322 |
|
|
323 |
b) use the modified Package only within your corporation or |
|
324 |
organization. |
|
325 |
|
|
326 |
c) rename any non-standard executables so the names do not |
|
327 |
conflict with standard executables, which must also be provided, |
|
328 |
and provide a separate manual page for each non-standard |
|
329 |
executable that clearly documents how it differs from the Standard |
|
330 |
Version. |
|
331 |
|
|
332 |
d) make other distribution arrangements with the Copyright Holder. |
|
333 |
|
|
334 |
4. You may distribute the programs of this Package in object code or executable |
|
335 |
form, provided that you do at least ONE of the following: |
|
336 |
|
|
337 |
a) distribute a Standard Version of the executables and library |
|
338 |
files, together with instructions (in the manual page or equivalent) |
|
339 |
on where to get the Standard Version. |
|
340 |
|
|
341 |
b) accompany the distribution with the machine-readable source of |
|
342 |
the Package with your modifications. |
|
343 |
|
|
344 |
c) accompany any non-standard executables with their |
|
345 |
corresponding Standard Version executables, giving the |
|
346 |
non-standard executables non-standard names, and clearly |
|
347 |
documenting the differences in manual pages (or equivalent), |
|
348 |
together with instructions on where to get the Standard Version. |
|
349 |
|
|
350 |
d) make other distribution arrangements with the Copyright Holder. |
|
351 |
|
|
352 |
5. You may charge a reasonable copying fee for any distribution of this Package. |
|
353 |
You may charge any fee you choose for support of this Package. You may not |
|
354 |
charge a fee for this Package itself. However, you may distribute this Package in |
|
355 |
aggregate with other (possibly commercial) programs as part of a larger |
|
356 |
(possibly commercial) software distribution provided that you do not advertise |
|
357 |
this Package as a product of your own. |
|
358 |
|
|
359 |
6. The scripts and library files supplied as input to or produced as output from |
|
360 |
the programs of this Package do not automatically fall under the copyright of this |
|
361 |
Package, but belong to whomever generated them, and may be sold |
|
362 |
commercially, and may be aggregated with this Package. |
|
363 |
|
|
364 |
7. C or perl subroutines supplied by you and linked into this Package shall not |
|
365 |
be considered part of this Package. |
|
366 |
|
|
367 |
8. Aggregation of this Package with a commercial distribution is always permitted |
|
368 |
provided that the use of this Package is embedded; that is, when no overt attempt |
|
369 |
is made to make this Package's interfaces visible to the end user of the |
|
370 |
commercial distribution. Such use shall not be construed as a distribution of |
|
371 |
this Package. |
|
372 |
|
|
373 |
9. The name of the Copyright Holder may not be used to endorse or promote |
|
374 |
products derived from this software without specific prior written permission. |
|
375 |
|
|
376 |
10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR |
|
377 |
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED |
|
378 |
WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR |
|
379 |
PURPOSE. |
|
380 |
|
|
381 |
The End |
|
382 |
|
|
383 |
|
doc/modules/LICENSE.Email-Address | ||
---|---|---|
1 |
Copyright (c) 2004 Casey West. All rights reserved. |
|
2 |
|
|
3 |
This module is free software; you can redistribute it and/or modify it |
|
4 |
under the same terms as Perl itself. |
|
5 |
|
|
6 |
Perl is distributed under your choice of the GNU General Public License or |
|
7 |
the Artistic License. |
|
8 |
|
|
9 |
The complete text of the GNU General Public License can be found in |
|
10 |
/usr/share/common-licenses/GPL and the Artistic Licence can be found |
|
11 |
in /usr/share/common-licenses/Artistic. |
doc/modules/LICENSE.List-MoreUtils | ||
---|---|---|
1 |
COPYRIGHT AND LICENSE |
|
2 |
|
|
3 |
Copyright (C) 2004-2006 by Tassilo von Parseval |
|
4 |
|
|
5 |
This library is free software; you can redistribute it and/or modify |
|
6 |
it under the same terms as Perl itself, either Perl version 5.8.4 or, |
|
7 |
at your option, any later version of Perl 5 you may have available. |
doc/modules/LICENSE.List-UtilsBy | ||
---|---|---|
1 |
This software is copyright (c) 2012 by Paul Evans <leonerd@leonerd.org.uk>. |
|
2 |
|
|
3 |
This is free software; you can redistribute it and/or modify it under |
|
4 |
the same terms as the Perl 5 programming language system itself. |
|
5 |
|
|
6 |
Terms of the Perl programming language system itself |
|
7 |
|
|
8 |
a) the GNU General Public License as published by the Free |
|
9 |
Software Foundation; either version 1, or (at your option) any |
|
10 |
later version, or |
|
11 |
b) the "Artistic License" |
|
12 |
|
|
13 |
--- The GNU General Public License, Version 1, February 1989 --- |
|
14 |
|
|
15 |
This software is Copyright (c) 2012 by Paul Evans <leonerd@leonerd.org.uk>. |
|
16 |
|
|
17 |
This is free software, licensed under: |
|
18 |
|
|
19 |
The GNU General Public License, Version 1, February 1989 |
|
20 |
|
|
21 |
GNU GENERAL PUBLIC LICENSE |
|
22 |
Version 1, February 1989 |
|
23 |
|
|
24 |
Copyright (C) 1989 Free Software Foundation, Inc. |
|
25 |
51 Franklin St, Suite 500, Boston, MA 02110-1335 USA |
|
26 |
|
|
27 |
Everyone is permitted to copy and distribute verbatim copies |
|
28 |
of this license document, but changing it is not allowed. |
|
29 |
|
|
30 |
Preamble |
|
31 |
|
|
32 |
The license agreements of most software companies try to keep users |
|
33 |
at the mercy of those companies. By contrast, our General Public |
|
34 |
License is intended to guarantee your freedom to share and change free |
|
35 |
software--to make sure the software is free for all its users. The |
|
36 |
General Public License applies to the Free Software Foundation's |
|
37 |
software and to any other program whose authors commit to using it. |
|
38 |
You can use it for your programs, too. |
|
39 |
|
|
40 |
When we speak of free software, we are referring to freedom, not |
|
41 |
price. Specifically, the General Public License is designed to make |
|
42 |
sure that you have the freedom to give away or sell copies of free |
|
43 |
software, that you receive source code or can get it if you want it, |
|
44 |
that you can change the software or use pieces of it in new free |
|
45 |
programs; and that you know you can do these things. |
|
46 |
|
|
47 |
To protect your rights, we need to make restrictions that forbid |
|
48 |
anyone to deny you these rights or to ask you to surrender the rights. |
|
49 |
These restrictions translate to certain responsibilities for you if you |
|
50 |
distribute copies of the software, or if you modify it. |
|
51 |
|
|
52 |
For example, if you distribute copies of a such a program, whether |
|
53 |
gratis or for a fee, you must give the recipients all the rights that |
|
54 |
you have. You must make sure that they, too, receive or can get the |
|
55 |
source code. And you must tell them their rights. |
|
56 |
|
|
57 |
We protect your rights with two steps: (1) copyright the software, and |
|
58 |
(2) offer you this license which gives you legal permission to copy, |
|
59 |
distribute and/or modify the software. |
|
60 |
|
|
61 |
Also, for each author's protection and ours, we want to make certain |
|
62 |
that everyone understands that there is no warranty for this free |
|
63 |
software. If the software is modified by someone else and passed on, we |
|
64 |
want its recipients to know that what they have is not the original, so |
|
65 |
that any problems introduced by others will not reflect on the original |
|
66 |
authors' reputations. |
|
67 |
|
|
68 |
The precise terms and conditions for copying, distribution and |
|
69 |
modification follow. |
|
70 |
|
|
71 |
GNU GENERAL PUBLIC LICENSE |
|
72 |
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION |
|
73 |
|
|
74 |
0. This License Agreement applies to any program or other work which |
|
75 |
contains a notice placed by the copyright holder saying it may be |
|
76 |
distributed under the terms of this General Public License. The |
|
77 |
"Program", below, refers to any such program or work, and a "work based |
|
78 |
on the Program" means either the Program or any work containing the |
|
79 |
Program or a portion of it, either verbatim or with modifications. Each |
|
80 |
licensee is addressed as "you". |
|
81 |
|
|
82 |
1. You may copy and distribute verbatim copies of the Program's source |
|
83 |
code as you receive it, in any medium, provided that you conspicuously and |
|
84 |
appropriately publish on each copy an appropriate copyright notice and |
|
85 |
disclaimer of warranty; keep intact all the notices that refer to this |
|
86 |
General Public License and to the absence of any warranty; and give any |
|
87 |
other recipients of the Program a copy of this General Public License |
|
88 |
along with the Program. You may charge a fee for the physical act of |
|
89 |
transferring a copy. |
|
90 |
|
|
91 |
2. You may modify your copy or copies of the Program or any portion of |
|
92 |
it, and copy and distribute such modifications under the terms of Paragraph |
|
93 |
1 above, provided that you also do the following: |
|
94 |
|
|
95 |
a) cause the modified files to carry prominent notices stating that |
|
96 |
you changed the files and the date of any change; and |
|
97 |
|
|
98 |
b) cause the whole of any work that you distribute or publish, that |
|
99 |
in whole or in part contains the Program or any part thereof, either |
|
100 |
with or without modifications, to be licensed at no charge to all |
|
101 |
third parties under the terms of this General Public License (except |
|
102 |
that you may choose to grant warranty protection to some or all |
|
103 |
third parties, at your option). |
|
104 |
|
|
105 |
c) If the modified program normally reads commands interactively when |
|
106 |
run, you must cause it, when started running for such interactive use |
|
107 |
in the simplest and most usual way, to print or display an |
|
108 |
announcement including an appropriate copyright notice and a notice |
|
109 |
that there is no warranty (or else, saying that you provide a |
|
110 |
warranty) and that users may redistribute the program under these |
|
111 |
conditions, and telling the user how to view a copy of this General |
|
112 |
Public License. |
|
113 |
|
|
114 |
d) You may charge a fee for the physical act of transferring a |
|
115 |
copy, and you may at your option offer warranty protection in |
|
116 |
exchange for a fee. |
|
117 |
|
|
118 |
Mere aggregation of another independent work with the Program (or its |
|
119 |
derivative) on a volume of a storage or distribution medium does not bring |
|
120 |
the other work under the scope of these terms. |
|
121 |
|
|
122 |
3. You may copy and distribute the Program (or a portion or derivative of |
|
123 |
it, under Paragraph 2) in object code or executable form under the terms of |
|
124 |
Paragraphs 1 and 2 above provided that you also do one of the following: |
|
125 |
|
|
126 |
a) accompany it with the complete corresponding machine-readable |
|
127 |
source code, which must be distributed under the terms of |
|
128 |
Paragraphs 1 and 2 above; or, |
|
129 |
|
|
130 |
b) accompany it with a written offer, valid for at least three |
|
131 |
years, to give any third party free (except for a nominal charge |
|
132 |
for the cost of distribution) a complete machine-readable copy of the |
|
133 |
corresponding source code, to be distributed under the terms of |
|
134 |
Paragraphs 1 and 2 above; or, |
|
135 |
|
|
136 |
c) accompany it with the information you received as to where the |
|
137 |
corresponding source code may be obtained. (This alternative is |
|
138 |
allowed only for noncommercial distribution and only if you |
|
139 |
received the program in object code or executable form alone.) |
|
140 |
|
|
141 |
Source code for a work means the preferred form of the work for making |
|
142 |
modifications to it. For an executable file, complete source code means |
|
143 |
all the source code for all modules it contains; but, as a special |
|
144 |
exception, it need not include source code for modules which are standard |
|
145 |
libraries that accompany the operating system on which the executable |
|
146 |
file runs, or for standard header files or definitions files that |
|
147 |
accompany that operating system. |
|
148 |
|
|
149 |
4. You may not copy, modify, sublicense, distribute or transfer the |
|
150 |
Program except as expressly provided under this General Public License. |
|
151 |
Any attempt otherwise to copy, modify, sublicense, distribute or transfer |
|
152 |
the Program is void, and will automatically terminate your rights to use |
|
153 |
the Program under this License. However, parties who have received |
|
154 |
copies, or rights to use copies, from you under this General Public |
|
155 |
License will not have their licenses terminated so long as such parties |
|
156 |
remain in full compliance. |
|
157 |
|
|
158 |
5. By copying, distributing or modifying the Program (or any work based |
|
159 |
on the Program) you indicate your acceptance of this license to do so, |
|
160 |
and all its terms and conditions. |
|
161 |
|
|
162 |
6. Each time you redistribute the Program (or any work based on the |
|
163 |
Program), the recipient automatically receives a license from the original |
|
164 |
licensor to copy, distribute or modify the Program subject to these |
|
165 |
terms and conditions. You may not impose any further restrictions on the |
|
166 |
recipients' exercise of the rights granted herein. |
|
167 |
|
|
168 |
7. The Free Software Foundation may publish revised and/or new versions |
|
169 |
of the General Public License from time to time. Such new versions will |
|
170 |
be similar in spirit to the present version, but may differ in detail to |
|
171 |
address new problems or concerns. |
|
172 |
|
|
173 |
Each version is given a distinguishing version number. If the Program |
|
174 |
specifies a version number of the license which applies to it and "any |
|
175 |
later version", you have the option of following the terms and conditions |
|
176 |
either of that version or of any later version published by the Free |
|
177 |
Software Foundation. If the Program does not specify a version number of |
|
178 |
the license, you may choose any version ever published by the Free Software |
|
179 |
Foundation. |
|
180 |
|
|
181 |
8. If you wish to incorporate parts of the Program into other free |
|
182 |
programs whose distribution conditions are different, write to the author |
|
183 |
to ask for permission. For software which is copyrighted by the Free |
|
184 |
Software Foundation, write to the Free Software Foundation; we sometimes |
|
185 |
make exceptions for this. Our decision will be guided by the two goals |
|
186 |
of preserving the free status of all derivatives of our free software and |
|
187 |
of promoting the sharing and reuse of software generally. |
|
188 |
|
|
189 |
NO WARRANTY |
|
190 |
|
|
191 |
9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY |
|
192 |
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN |
|
193 |
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES |
|
194 |
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED |
|
195 |
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
|
196 |
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS |
|
197 |
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE |
|
198 |
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, |
|
199 |
REPAIR OR CORRECTION. |
|
200 |
|
|
201 |
10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING |
|
202 |
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR |
|
203 |
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, |
|
204 |
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING |
|
205 |
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED |
|
206 |
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY |
|
207 |
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER |
|
208 |
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE |
|
209 |
POSSIBILITY OF SUCH DAMAGES. |
|
210 |
|
|
211 |
END OF TERMS AND CONDITIONS |
|
212 |
|
|
213 |
Appendix: How to Apply These Terms to Your New Programs |
|
214 |
|
|
215 |
If you develop a new program, and you want it to be of the greatest |
|
216 |
possible use to humanity, the best way to achieve this is to make it |
|
217 |
free software which everyone can redistribute and change under these |
|
218 |
terms. |
|
219 |
|
|
220 |
To do so, attach the following notices to the program. It is safest to |
|
221 |
attach them to the start of each source file to most effectively convey |
|
222 |
the exclusion of warranty; and each file should have at least the |
|
223 |
"copyright" line and a pointer to where the full notice is found. |
|
224 |
|
|
225 |
<one line to give the program's name and a brief idea of what it does.> |
|
226 |
Copyright (C) 19yy <name of author> |
|
227 |
|
|
228 |
This program is free software; you can redistribute it and/or modify |
|
229 |
it under the terms of the GNU General Public License as published by |
|
230 |
the Free Software Foundation; either version 1, or (at your option) |
|
231 |
any later version. |
|
232 |
|
|
233 |
This program is distributed in the hope that it will be useful, |
|
234 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
235 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
236 |
GNU General Public License for more details. |
|
237 |
|
|
238 |
You should have received a copy of the GNU General Public License |
|
239 |
along with this program; if not, write to the Free Software |
|
240 |
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA |
|
241 |
|
|
242 |
|
|
243 |
Also add information on how to contact you by electronic and paper mail. |
|
244 |
|
|
245 |
If the program is interactive, make it output a short notice like this |
|
246 |
when it starts in an interactive mode: |
|
247 |
|
|
248 |
Gnomovision version 69, Copyright (C) 19xx name of author |
|
249 |
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. |
|
250 |
This is free software, and you are welcome to redistribute it |
|
251 |
under certain conditions; type `show c' for details. |
|
252 |
|
|
253 |
The hypothetical commands `show w' and `show c' should show the |
|
254 |
appropriate parts of the General Public License. Of course, the |
|
255 |
commands you use may be called something other than `show w' and `show |
|
256 |
c'; they could even be mouse-clicks or menu items--whatever suits your |
|
257 |
program. |
|
258 |
|
|
259 |
You should also get your employer (if you work as a programmer) or your |
|
260 |
school, if any, to sign a "copyright disclaimer" for the program, if |
|
261 |
necessary. Here a sample; alter the names: |
|
262 |
|
|
263 |
Yoyodyne, Inc., hereby disclaims all copyright interest in the |
|
264 |
program `Gnomovision' (a program to direct compilers to make passes |
|
265 |
at assemblers) written by James Hacker. |
|
266 |
|
|
267 |
<signature of Ty Coon>, 1 April 1989 |
|
268 |
Ty Coon, President of Vice |
|
269 |
|
|
270 |
That's all there is to it! |
|
271 |
|
|
272 |
|
|
273 |
--- The Artistic License 1.0 --- |
|
274 |
|
|
275 |
This software is Copyright (c) 2012 by Paul Evans <leonerd@leonerd.org.uk>. |
|
276 |
|
|
277 |
This is free software, licensed under: |
|
278 |
|
|
279 |
The Artistic License 1.0 |
|
280 |
|
|
281 |
The Artistic License |
|
282 |
|
|
283 |
Preamble |
|
284 |
|
|
285 |
The intent of this document is to state the conditions under which a Package |
|
286 |
may be copied, such that the Copyright Holder maintains some semblance of |
|
287 |
artistic control over the development of the package, while giving the users of |
|
288 |
the package the right to use and distribute the Package in a more-or-less |
|
289 |
customary fashion, plus the right to make reasonable modifications. |
|
290 |
|
|
291 |
Definitions: |
|
292 |
|
|
293 |
- "Package" refers to the collection of files distributed by the Copyright |
|
294 |
Holder, and derivatives of that collection of files created through |
|
295 |
textual modification. |
|
296 |
- "Standard Version" refers to such a Package if it has not been modified, |
|
297 |
or has been modified in accordance with the wishes of the Copyright |
|
298 |
Holder. |
|
299 |
- "Copyright Holder" is whoever is named in the copyright or copyrights for |
|
300 |
the package. |
|
301 |
- "You" is you, if you're thinking about copying or distributing this Package. |
|
302 |
- "Reasonable copying fee" is whatever you can justify on the basis of media |
|
303 |
cost, duplication charges, time of people involved, and so on. (You will |
|
304 |
not be required to justify it to the Copyright Holder, but only to the |
|
305 |
computing community at large as a market that must bear the fee.) |
|
306 |
- "Freely Available" means that no fee is charged for the item itself, though |
|
307 |
there may be fees involved in handling the item. It also means that |
|
308 |
recipients of the item may redistribute it under the same conditions they |
|
309 |
received it. |
|
310 |
|
|
311 |
1. You may make and give away verbatim copies of the source form of the |
|
312 |
Standard Version of this Package without restriction, provided that you |
|
313 |
duplicate all of the original copyright notices and associated disclaimers. |
|
314 |
|
|
315 |
2. You may apply bug fixes, portability fixes and other modifications derived |
|
316 |
from the Public Domain or from the Copyright Holder. A Package modified in such |
|
317 |
a way shall still be considered the Standard Version. |
|
318 |
|
|
319 |
3. You may otherwise modify your copy of this Package in any way, provided that |
|
320 |
you insert a prominent notice in each changed file stating how and when you |
|
321 |
changed that file, and provided that you do at least ONE of the following: |
|
322 |
|
|
323 |
a) place your modifications in the Public Domain or otherwise make them |
|
324 |
Freely Available, such as by posting said modifications to Usenet or an |
|
325 |
equivalent medium, or placing the modifications on a major archive site |
|
326 |
such as ftp.uu.net, or by allowing the Copyright Holder to include your |
|
327 |
modifications in the Standard Version of the Package. |
|
328 |
|
|
329 |
b) use the modified Package only within your corporation or organization. |
|
330 |
|
|
331 |
c) rename any non-standard executables so the names do not conflict with |
|
332 |
standard executables, which must also be provided, and provide a separate |
|
333 |
manual page for each non-standard executable that clearly documents how it |
|
334 |
differs from the Standard Version. |
|
335 |
|
|
336 |
d) make other distribution arrangements with the Copyright Holder. |
|
337 |
|
|
338 |
4. You may distribute the programs of this Package in object code or executable |
|
339 |
form, provided that you do at least ONE of the following: |
|
340 |
|
|
341 |
a) distribute a Standard Version of the executables and library files, |
|
342 |
together with instructions (in the manual page or equivalent) on where to |
|
343 |
get the Standard Version. |
|
344 |
|
|
345 |
b) accompany the distribution with the machine-readable source of the Package |
|
346 |
with your modifications. |
|
347 |
|
|
348 |
c) accompany any non-standard executables with their corresponding Standard |
|
349 |
Version executables, giving the non-standard executables non-standard |
|
350 |
names, and clearly documenting the differences in manual pages (or |
|
351 |
equivalent), together with instructions on where to get the Standard |
|
352 |
Version. |
|
353 |
|
|
354 |
d) make other distribution arrangements with the Copyright Holder. |
|
355 |
|
|
356 |
5. You may charge a reasonable copying fee for any distribution of this |
|
357 |
Package. You may charge any fee you choose for support of this Package. You |
|
358 |
may not charge a fee for this Package itself. However, you may distribute this |
|
359 |
Package in aggregate with other (possibly commercial) programs as part of a |
|
360 |
larger (possibly commercial) software distribution provided that you do not |
|
361 |
advertise this Package as a product of your own. |
|
362 |
|
|
363 |
6. The scripts and library files supplied as input to or produced as output |
|
364 |
from the programs of this Package do not automatically fall under the copyright |
|
365 |
of this Package, but belong to whomever generated them, and may be sold |
|
366 |
commercially, and may be aggregated with this Package. |
|
367 |
|
|
368 |
7. C or perl subroutines supplied by you and linked into this Package shall not |
|
369 |
be considered part of this Package. |
|
370 |
|
|
371 |
8. The name of the Copyright Holder may not be used to endorse or promote |
|
372 |
products derived from this software without specific prior written permission. |
|
373 |
|
|
374 |
9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED |
|
375 |
WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF |
|
376 |
MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
|
377 |
|
|
378 |
The End |
doc/modules/README.CGI-Ajax | ||
---|---|---|
1 |
pod2text CGI::Perljax.pm > README |
|
2 |
|
|
3 |
CGI::Perljax |
|
4 |
|
|
5 |
Perljax - a perl-specific system for writing AJAX- or |
|
6 |
DHTML-based web applications. |
|
7 |
|
|
8 |
|
|
9 |
Perljax provides a unique mechanism for using perl code |
|
10 |
asynchronously from javascript using AJAX to access user-written |
|
11 |
perl functions/methods. Perljax unburdens the user from having to |
|
12 |
write any javascript, except for having to associate an exported |
|
13 |
method with a document-defined event (such as onClick, onKeyUp, |
|
14 |
etc). Only in the more advanced implementations of a exported perl |
|
15 |
method would a user need to write custom javascript. Perljax supports |
|
16 |
methods that return single results, or multiple results to the web |
|
17 |
page. No other projects that we know of are like Perljax for the |
|
18 |
following reasons: 1. Perljax is targeted specifically for perl |
|
19 |
development. 2. Perljax shields the user from having to write any |
|
20 |
javascript at all (unless they want to). 3. The URL for the HTTP GET |
|
21 |
request is automatically generated based on HTML layout and events, |
|
22 |
and the page is then dynamically updated. 4. Perljax is not part |
|
23 |
of a Content Management System, or some other larger project. |
|
24 |
|
|
25 |
|
|
26 |
INSTALL |
|
27 |
|
|
28 |
perl Makefile.PL |
|
29 |
make |
|
30 |
make test |
|
31 |
make install |
|
32 |
|
|
33 |
*If you are on a windows box you should use 'nmake' rather than 'make'. |
|
34 |
|
|
35 |
Installation will place Perljax into the system perl @INC path, but it |
|
36 |
is important that you make sure mod_perl uses this path (which is |
|
37 |
mod_perl's default behavior, and also assuming you use mod_perl, and |
|
38 |
not just run perl as a CGI). |
|
39 |
|
|
40 |
Example scripts are provided in the source script directory, and can |
|
41 |
also be seen on the project's website, http://www.perljax.us. |
doc/modules/README.File-Slurp | ||
---|---|---|
1 |
File::Slurp.pm version 0.04 |
|
2 |
=========================== |
|
3 |
|
|
4 |
This module provides subroutines to read or write entire files with a |
|
5 |
simple call. It also has a subroutine for reading the list of filenames |
|
6 |
in a directory. |
|
7 |
|
|
8 |
In the extras/ directory you can read an article (slurp_article.pod) |
|
9 |
about file slurping and also run a benchmark (slurp_bench.pl) that |
|
10 |
compares many ways of slurping/spewing files. |
|
11 |
|
|
12 |
This module was first written and owned by David Muir Sharnoff (MUIR on |
|
13 |
CPAN). I checked out his module and decided to write a new version |
|
14 |
which would be faster, and with many more features. To that end, David |
|
15 |
graciously transfered the namespace to me. |
|
16 |
|
|
17 |
Since then, I discovered and fixed a bug in the original module's test |
|
18 |
script (which had only 7 tests), which is included now as t/original.t. |
|
19 |
This module now has 164 tests in 7 test scripts, and passes on Windows, |
|
20 |
Linux, Solaris and Mac OS X. |
|
21 |
|
|
22 |
There have been some comments about the somewhat unusual version number. |
|
23 |
The problem was that David used a future date (2004.0904) in his version |
|
24 |
number, and the only way I could get CPAN to index my new module was to |
|
25 |
make it have a version number higher than the old one, so I chose the |
|
26 |
9999 prefix and appended the real revision number to it. |
|
27 |
|
|
28 |
INSTALLATION |
|
29 |
|
|
30 |
To install this module type the following: |
|
31 |
|
|
32 |
perl Makefile.PL |
|
33 |
make |
|
34 |
make test |
|
35 |
make install |
|
36 |
|
|
37 |
COPYRIGHT AND LICENCE |
|
38 |
|
|
39 |
Copyright (C) 2003 Uri Guttman <uri@stemsystems.com> |
|
40 |
|
|
41 |
Licensed the same as Perl. |
doc/modules/README.List-UtilsBy | ||
---|---|---|
1 |
NAME |
|
2 |
`List::UtilsBy' - higher-order list utility functions |
|
3 |
|
|
4 |
SYNOPSIS |
|
5 |
use List::UtilsBy qw( nsort_by min_by ); |
|
6 |
|
|
7 |
use File::stat qw( stat ); |
|
8 |
my @files_by_age = nsort_by { stat($_)->mtime } @files; |
|
9 |
|
|
10 |
my $shortest_name = min_by { length } @names; |
|
11 |
|
|
12 |
DESCRIPTION |
|
13 |
This module provides a number of list utility functions, all of which |
|
14 |
take an initial code block to control their behaviour. They are |
|
15 |
variations on similar core perl or `List::Util' functions of similar |
|
16 |
names, but which use the block to control their behaviour. For example, |
|
17 |
the core Perl function `sort' takes a list of values and returns them, |
|
18 |
sorted into order by their string value. The `sort_by' function sorts |
|
19 |
them according to the string value returned by the extra function, when |
|
20 |
given each value. |
|
21 |
|
|
22 |
my @names_sorted = sort @names; |
|
23 |
|
|
24 |
my @people_sorted = sort_by { $_->name } @people; |
|
25 |
|
|
26 |
FUNCTIONS |
|
27 |
@vals = sort_by { KEYFUNC } @vals |
|
28 |
Returns the list of values sorted according to the string values |
|
29 |
returned by the `KEYFUNC' block or function. A typical use of this may |
|
30 |
be to sort objects according to the string value of some accessor, such |
|
31 |
as |
|
32 |
|
|
33 |
sort_by { $_->name } @people |
|
34 |
|
|
35 |
The key function is called in scalar context, being passed each value in |
|
36 |
turn as both `$_' and the only argument in the parameters, `@_'. The |
|
37 |
values are then sorted according to string comparisons on the values |
|
38 |
returned. |
|
39 |
|
|
40 |
This is equivalent to |
|
41 |
|
|
42 |
sort { $a->name cmp $b->name } @people |
|
43 |
|
|
44 |
except that it guarantees the `name' accessor will be executed only once |
|
45 |
per value. |
|
46 |
|
|
47 |
One interesting use-case is to sort strings which may have numbers |
|
48 |
embedded in them "naturally", rather than lexically. |
|
49 |
|
|
50 |
sort_by { s/(\d+)/sprintf "%09d", $1/eg; $_ } @strings |
|
51 |
|
|
52 |
This sorts strings by generating sort keys which zero-pad the embedded |
|
53 |
numbers to some level (9 digits in this case), helping to ensure the |
|
54 |
lexical sort puts them in the correct order. |
|
55 |
|
|
56 |
@vals = nsort_by { KEYFUNC } @vals |
|
57 |
Similar to `sort_by' but compares its key values numerically. |
|
58 |
|
|
59 |
@vals = rev_sort_by { KEYFUNC } @vals |
|
60 |
@vals = rev_nsort_by { KEYFUNC } @vals |
|
61 |
Similar to `sort_by' and `nsort_by' but returns the list in the reverse |
|
62 |
order. Equivalent to |
|
63 |
|
|
64 |
@vals = reverse sort_by { KEYFUNC } @vals |
|
65 |
|
|
66 |
except that these functions are slightly more efficient because they |
|
67 |
avoid the final `reverse' operation. |
|
68 |
|
|
69 |
$optimal = max_by { KEYFUNC } @vals |
|
70 |
@optimal = max_by { KEYFUNC } @vals |
|
71 |
Returns the (first) value from `@vals' that gives the numerically |
|
72 |
largest result from the key function. |
|
73 |
|
|
74 |
my $tallest = max_by { $_->height } @people |
|
75 |
|
|
76 |
use File::stat qw( stat ); |
|
77 |
my $newest = max_by { stat($_)->mtime } @files; |
|
78 |
|
|
79 |
In scalar context, the first maximal value is returned. In list context, |
|
80 |
a list of all the maximal values is returned. This may be used to obtain |
|
81 |
positions other than the first, if order is significant. |
|
82 |
|
|
83 |
If called on an empty list, an empty list is returned. |
|
84 |
|
|
85 |
For symmetry with the `nsort_by' function, this is also provided under |
|
86 |
the name `nmax_by' since it behaves numerically. |
|
87 |
|
|
88 |
$optimal = min_by { KEYFUNC } @vals |
|
89 |
@optimal = min_by { KEYFUNC } @vals |
|
90 |
Similar to `max_by' but returns values which give the numerically |
|
91 |
smallest result from the key function. Also provided as `nmin_by' |
|
92 |
|
|
93 |
@vals = uniq_by { KEYFUNC } @vals |
|
94 |
Returns a list of the subset of values for which the key function block |
|
95 |
returns unique values. The first value yielding a particular key is |
|
96 |
chosen, subsequent values are rejected. |
|
97 |
|
|
98 |
my @some_fruit = uniq_by { $_->colour } @fruit; |
|
99 |
|
|
100 |
To select instead the last value per key, reverse the input list. If the |
|
101 |
order of the results is significant, don't forget to reverse the result |
|
102 |
as well: |
|
103 |
|
|
104 |
my @some_fruit = reverse uniq_by { $_->colour } reverse @fruit; |
|
105 |
|
|
106 |
%parts = partition_by { KEYFUNC } @vals |
|
107 |
Returns a key/value list of ARRAY refs containing all the original |
|
108 |
values distributed according to the result of the key function block. |
|
109 |
Each value will be an ARRAY ref containing all the values which returned |
|
110 |
the string from the key function, in their original order. |
|
111 |
|
|
112 |
my %balls_by_colour = partition_by { $_->colour } @balls; |
|
113 |
|
|
114 |
Because the values returned by the key function are used as hash keys, |
|
115 |
they ought to either be strings, or at least well-behaved as strings |
|
116 |
(such as numbers, or object references which overload stringification in |
|
117 |
a suitable manner). |
|
118 |
|
|
119 |
%counts = count_by { KEYFUNC } @vals |
|
120 |
Returns a key/value list of integers, giving the number of times the key |
|
121 |
function block returned the key, for each value in the list. |
|
122 |
|
|
123 |
my %count_of_balls = count_by { $_->colour } @balls; |
|
124 |
|
|
125 |
Because the values returned by the key function are used as hash keys, |
|
126 |
they ought to either be strings, or at least well-behaved as strings |
|
127 |
(such as numbers, or object references which overload stringification in |
|
128 |
a suitable manner). |
|
129 |
|
|
130 |
@vals = zip_by { ITEMFUNC } \@arr0, \@arr1, \@arr2,... |
|
131 |
Returns a list of each of the values returned by the function block, |
|
132 |
when invoked with values from across each each of the given ARRAY |
|
133 |
references. Each value in the returned list will be the result of the |
|
134 |
function having been invoked with arguments at that position, from |
|
135 |
across each of the arrays given. |
|
136 |
|
|
137 |
my @transposition = zip_by { [ @_ ] } @matrix; |
|
138 |
|
|
139 |
my @names = zip_by { "$_[1], $_[0]" } \@firstnames, \@surnames; |
|
140 |
|
|
141 |
print zip_by { "$_[0] => $_[1]\n" } [ keys %hash ], [ values %hash ]; |
|
142 |
|
|
143 |
If some of the arrays are shorter than others, the function will behave |
|
144 |
as if they had `undef' in the trailing positions. The following two |
|
145 |
lines are equivalent: |
|
146 |
|
|
147 |
zip_by { f(@_) } [ 1, 2, 3 ], [ "a", "b" ] |
|
148 |
f( 1, "a" ), f( 2, "b" ), f( 3, undef ) |
|
149 |
|
|
150 |
The item function is called by `map', so if it returns a list, the |
|
151 |
entire list is included in the result. This can be useful for example, |
|
152 |
for generating a hash from two separate lists of keys and values |
|
153 |
|
|
154 |
my %nums = zip_by { @_ } [qw( one two three )], [ 1, 2, 3 ]; |
|
155 |
# %nums = ( one => 1, two => 2, three => 3 ) |
|
156 |
|
|
157 |
(A function having this behaviour is sometimes called `zipWith', e.g. in |
|
158 |
Haskell, but that name would not fit the naming scheme used by this |
|
159 |
module). |
|
160 |
|
|
161 |
$arr0, $arr1, $arr2, ... = unzip_by { ITEMFUNC } @vals |
|
162 |
Returns a list of ARRAY references containing the values returned by the |
|
163 |
function block, when invoked for each of the values given in the input |
|
164 |
list. Each of the returned ARRAY references will contain the values |
|
165 |
returned at that corresponding position by the function block. That is, |
|
166 |
the first returned ARRAY reference will contain all the values returned |
|
167 |
in the first position by the function block, the second will contain all |
|
168 |
the values from the second position, and so on. |
|
169 |
|
|
170 |
my ( $firstnames, $lastnames ) = unzip_by { m/^(.*?) (.*)$/ } @names; |
|
171 |
|
|
172 |
If the function returns lists of differing lengths, the result will be |
|
173 |
padded with `undef' in the missing elements. |
|
174 |
|
|
175 |
This function is an inverse of `zip_by', if given a corresponding |
|
176 |
inverse function. |
|
177 |
|
|
178 |
@vals = extract_by { SELECTFUNC } @arr |
|
179 |
Removes elements from the referenced array on which the selection |
|
180 |
function returns true, and returns a list containing those elements. |
|
181 |
This function is similar to `grep', except that it modifies the |
|
182 |
referenced array to remove the selected values from it, leaving only the |
|
183 |
unselected ones. |
|
184 |
|
|
185 |
my @red_balls = extract_by { $_->color eq "red" } @balls; |
|
186 |
|
|
187 |
# Now there are no red balls in the @balls array |
|
188 |
|
|
189 |
This function modifies a real array, unlike most of the other functions |
|
190 |
in this module. Because of this, it requires a real array, not just a |
|
191 |
list. |
|
192 |
|
|
193 |
This function is implemented by invoking `splice()' on the array, not by |
|
194 |
constructing a new list and assigning it. One result of this is that |
|
195 |
weak references will not be disturbed. |
|
196 |
|
|
197 |
extract_by { !defined $_ } @refs; |
|
198 |
|
|
199 |
will leave weak references weakened in the `@refs' array, whereas |
|
200 |
|
|
201 |
@refs = grep { defined $_ } @refs; |
|
202 |
|
|
203 |
will strengthen them all again. |
|
204 |
|
|
205 |
@vals = weighted_shuffle_by { WEIGHTFUNC } @vals |
|
206 |
Returns the list of values shuffled into a random order. The |
|
207 |
randomisation is not uniform, but weighted by the value returned by the |
|
208 |
`WEIGHTFUNC'. The probabilty of each item being returned first will be |
|
209 |
distributed with the distribution of the weights, and so on recursively |
|
210 |
for the remaining items. |
|
211 |
|
|
212 |
@vals = bundle_by { BLOCKFUNC } $number, @vals |
|
213 |
Similar to a regular `map' functional, returns a list of the values |
|
214 |
returned by `BLOCKFUNC'. Values from the input list are given to the |
|
215 |
block function in bundles of `$number'. |
|
216 |
|
|
217 |
If given a list of values whose length does not evenly divide by |
|
218 |
`$number', the final call will be passed fewer elements than the others. |
|
219 |
|
|
220 |
TODO |
|
221 |
* XS implementations |
|
222 |
These functions are currently all written in pure perl. Some at |
|
223 |
least, may benefit from having XS implementations to speed up their |
|
224 |
logic. |
|
225 |
|
|
226 |
* Merge into List::Util or List::MoreUtils |
|
227 |
This module shouldn't really exist. The functions should instead be |
|
228 |
part of one of the existing modules that already contain many list |
|
229 |
utility functions. Having Yet Another List Utilty Module just |
|
230 |
worsens the problem. |
|
231 |
|
|
232 |
I have attempted to contact the authors of both of the above |
|
233 |
modules, to no avail; therefore I decided it best to write and |
|
234 |
release this code here anyway so that it is at least on CPAN. Once |
|
235 |
there, we can then see how best to merge it into an existing module. |
|
236 |
|
|
237 |
AUTHOR |
|
238 |
Paul Evans <leonerd@leonerd.org.uk> |
doc/modules/README.Sort-Naturally | ||
---|---|---|
1 |
README for Sort::Naturally |
|
2 |
Time-stamp: "2001-05-25 21:17:33 MDT" |
|
3 |
|
|
4 |
Sort::Naturally |
|
5 |
|
|
6 |
[extracted from the Pod...] |
|
7 |
|
|
8 |
NAME |
|
9 |
Sort::Naturally -- sort lexically, but sort numeral parts |
|
10 |
numerically |
|
11 |
|
|
12 |
SYNOPSIS |
|
13 |
@them = nsort(qw( |
|
14 |
foo12a foo12z foo13a foo 14 9x foo12 fooa foolio Foolio Foo12a |
|
15 |
)); |
|
16 |
print join(' ', @them), "\n"; |
|
17 |
|
|
18 |
Prints: |
|
19 |
|
|
20 |
9x 14 foo fooa foolio Foolio foo12 foo12a Foo12a foo12z foo13a |
|
21 |
|
|
22 |
(Or "foo12a" + "Foo12a" and "foolio" + "Foolio" and might be |
|
23 |
switched, depending on your locale.) |
|
24 |
|
|
25 |
DESCRIPTION |
|
26 |
This module exports two functions, nsort and ncmp; they are |
|
27 |
used in implementing my idea of a "natural sorting" |
|
28 |
algorithm. Under natural sorting, numeric substrings are |
|
29 |
compared numerically, and other word-characters are compared |
|
30 |
lexically. |
|
31 |
|
|
32 |
This is the way I define natural sorting: |
|
33 |
|
|
34 |
o Non-numeric word-character substrings are sorted |
|
35 |
lexically, case-insensitively: "Foo" comes between |
|
36 |
"fish" and "fowl". |
|
37 |
|
|
38 |
o Numeric substrings are sorted numerically: "100" comes |
|
39 |
after "20", not before. |
|
40 |
|
|
41 |
o \W substrings (neither words-characters nor digits) are |
|
42 |
ignored. |
|
43 |
|
|
44 |
o Our use of \w, \d, \D, and \W is locale-sensitive: |
|
45 |
Sort::Naturally uses a use locale statement. |
|
46 |
|
|
47 |
o When comparing two strings, where a numeric substring |
|
48 |
in one place is not up against a numeric substring in |
|
49 |
another, the non-numeric always comes first. This is |
|
50 |
fudged by reading pretending that the lack of a number |
|
51 |
substring has the value -1, like so: |
|
52 |
|
|
53 |
foo => "foo", -1 |
|
54 |
foobar => "foo", -1, "bar" |
|
55 |
foo13 => "foo", 13, |
|
56 |
foo13xyz => "foo", 13, "xyz" |
|
57 |
|
|
58 |
That's so that "foo" will come before "foo13", which |
|
59 |
will come before "foobar". |
|
60 |
|
|
61 |
o The start of a string is exceptional: leading non-\W |
|
62 |
(non-word, non-digit) components are are ignored, and |
|
63 |
numbers come before letters. |
|
64 |
|
|
65 |
o I define "numeric substring" just as sequences matching |
|
66 |
m/\d+/ -- scientific notation, commas, decimals, etc., |
|
67 |
are not seen. If your data has thousands separators in |
|
68 |
numbers ("20,000 Leagues Under The Sea" or "20.000 |
|
69 |
lieues sous les mers"), consider stripping them before |
|
70 |
feeding them to nsort or ncmp. |
|
71 |
|
|
72 |
[end Pod extract] |
|
73 |
|
|
74 |
|
|
75 |
INSTALLATION |
|
76 |
|
|
77 |
You install Sort::Naturally, as you would install any perl module |
|
78 |
library, by running these commands: |
|
79 |
|
|
80 |
perl Makefile.PL |
|
81 |
make |
|
82 |
make test |
|
83 |
make install |
|
84 |
|
|
85 |
If you want to install a private copy of Sort::Naturally in your home |
|
86 |
directory, then you should try to produce the initial Makefile with |
|
87 |
something like this command: |
|
88 |
|
|
89 |
perl Makefile.PL LIB=~/perl |
|
90 |
|
|
91 |
See perldoc perlmodinstall for more information on installing modules. |
|
92 |
|
|
93 |
|
|
94 |
DOCUMENTATION |
|
95 |
|
|
96 |
POD-format documentation is included in Naturally.pm. POD is readable |
|
97 |
with the 'perldoc' utility. See ChangeLog for recent changes. |
|
98 |
|
|
99 |
|
|
100 |
SUPPORT |
|
101 |
|
|
102 |
Questions, bug reports, useful code bits, and suggestions for |
|
103 |
Sort::Naturally should just be sent to me at sburke@cpan.org |
|
104 |
|
|
105 |
|
|
106 |
AVAILABILITY |
|
107 |
|
|
108 |
The latest version of Sort::Naturally is available from the |
|
109 |
Comprehensive Perl Archive Network (CPAN). Visit |
|
110 |
<http://www.perl.com/CPAN/> to find a CPAN site near you. |
|
111 |
|
|
112 |
|
|
113 |
COPYRIGHT |
|
114 |
|
|
115 |
Copyright 2001, Sean M. Burke <sburke@cpan.org>, all rights |
|
116 |
reserved. |
|
117 |
|
|
118 |
The programs and documentation in this dist are distributed in |
|
119 |
the hope that they will be useful, but without any warranty; without |
|
120 |
even the implied warranty of merchantability or fitness for a |
|
121 |
particular purpose. |
|
122 |
|
|
123 |
This library is free software; you can redistribute it and/or modify |
|
124 |
it under the same terms as Perl itself. |
Auch abrufbar als: Unified diff
Module: Doku zu nicht mehr gebundleten Modulen entfernen