Revision dec4d40f
Von Moritz Bunkus vor etwa 17 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/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.YAML | ||
---|---|---|
1 |
NAME |
|
2 |
YAML - YAML Ain't Markup Language (tm) |
|
3 |
|
|
4 |
SYNOPSIS |
|
5 |
use YAML; |
|
6 |
|
|
7 |
# Load a YAML stream of 3 YAML documents into Perl data structures. |
|
8 |
my ($hashref, $arrayref, $string) = Load(<<'...'); |
|
9 |
--- |
|
10 |
name: ingy |
|
11 |
age: old |
|
12 |
weight: heavy |
|
13 |
# I should comment that I also like pink, but don't tell anybody. |
|
14 |
favorite colors: |
|
15 |
- red |
|
16 |
- green |
|
17 |
- blue |
|
18 |
--- |
|
19 |
- Clark Evans |
|
20 |
- Oren Ben-Kiki |
|
21 |
- Ingy döt Net |
|
22 |
--- > |
|
23 |
You probably think YAML stands for "Yet Another Markup Language". It |
|
24 |
ain't! YAML is really a data serialization language. But if you want |
|
25 |
to think of it as a markup, that's OK with me. A lot of people try |
|
26 |
to use XML as a serialization format. |
|
27 |
|
|
28 |
"YAML" is catchy and fun to say. Try it. "YAML, YAML, YAML!!!" |
|
29 |
... |
|
30 |
|
|
31 |
# Dump the Perl data structures back into YAML. |
|
32 |
print Dump($string, $arrayref, $hashref); |
|
33 |
|
|
34 |
# YAML::Dump is used the same way you'd use Data::Dumper::Dumper |
|
35 |
use Data::Dumper; |
|
36 |
print Dumper($string, $arrayref, $hashref); |
|
37 |
|
|
38 |
DESCRIPTION |
|
39 |
The YAML.pm module implements a YAML Loader and Dumper based on the YAML |
|
40 |
1.0 specification. <http://www.yaml.org/spec/> |
|
41 |
|
|
42 |
YAML is a generic data serialization language that is optimized for |
|
43 |
human readability. It can be used to express the data structures of most |
|
44 |
modern programming languages. (Including Perl!!!) |
|
45 |
|
|
46 |
For information on the YAML syntax, please refer to the YAML |
|
47 |
specification. |
|
48 |
|
|
49 |
WHY YAML IS COOL |
|
50 |
YAML is readable for people. |
|
51 |
It makes clear sense out of complex data structures. You should find |
|
52 |
that YAML is an exceptional data dumping tool. Structure is shown |
|
53 |
through indentation, YAML supports recursive data, and hash keys are |
|
54 |
sorted by default. In addition, YAML supports several styles of |
|
55 |
scalar formatting for different types of data. |
|
56 |
|
|
57 |
YAML is editable. |
|
58 |
YAML was designed from the ground up to be an excellent syntax for |
|
59 |
configuration files. Almost all programs need configuration files, |
|
60 |
so why invent a new syntax for each one? And why subject users to |
|
61 |
the complexities of XML or native Perl code? |
|
62 |
|
|
63 |
YAML is multilingual. |
|
64 |
Yes, YAML supports Unicode. But I'm actually referring to |
|
65 |
programming languages. YAML was designed to meet the serialization |
|
66 |
needs of Perl, Python, Ruby, Tcl, PHP, Javascript and Java. It was |
|
67 |
also designed to be interoperable between those languages. That |
|
68 |
means YAML serializations produced by Perl can be processed by |
|
69 |
Python. |
|
70 |
|
|
71 |
YAML is taint safe. |
|
72 |
Using modules like Data::Dumper for serialization is fine as long as |
|
73 |
you can be sure that nobody can tamper with your data files or |
|
74 |
transmissions. That's because you need to use Perl's "eval()" |
|
75 |
built-in to deserialize the data. Somebody could add a snippet of |
|
76 |
Perl to erase your files. |
|
77 |
|
|
78 |
YAML's parser does not need to eval anything. |
|
79 |
|
|
80 |
YAML is full featured. |
|
81 |
YAML can accurately serialize all of the common Perl data structures |
|
82 |
and deserialize them again without losing data relationships. |
|
83 |
Although it is not 100% perfect (no serializer is or can be |
|
84 |
perfect), it fares as well as the popular current modules: |
|
85 |
Data::Dumper, Storable, XML::Dumper and Data::Denter. |
|
86 |
|
|
87 |
YAML.pm also has the ability to handle code (subroutine) references |
|
88 |
and typeglobs. (Still experimental) These features are not found in |
|
89 |
Perl's other serialization modules. |
|
90 |
|
|
91 |
YAML is extensible. |
|
92 |
The YAML language has been designed to be flexible enough to solve |
|
93 |
it's own problems. The markup itself has 3 basic construct which |
|
94 |
resemble Perl's hash, array and scalar. By default, these map to |
|
95 |
their Perl equivalents. But each YAML node also supports a tagging |
|
96 |
mechanism (type system) which can cause that node to be interpreted |
|
97 |
in a completely different manner. That's how YAML can support object |
|
98 |
serialization and oddball structures like Perl's typeglob. |
|
99 |
|
|
100 |
YAML IMPLEMENTATIONS IN PERL |
|
101 |
This module, YAML.pm, is really just the interface module for YAML |
|
102 |
modules written in Perl. The basic interface for YAML consists of two |
|
103 |
functions: "Dump" and "Load". The real work is done by the modules |
|
104 |
YAML::Dumper and YAML::Loader. |
|
105 |
|
|
106 |
Different YAML module distributions can be created by subclassing |
|
107 |
YAML.pm and YAML::Loader and YAML::Dumper. For example, YAML-Simple |
|
108 |
consists of YAML::Simple YAML::Dumper::Simple and YAML::Loader::Simple. |
|
109 |
|
|
110 |
Why would there be more than one implementation of YAML? Well, despite |
|
111 |
YAML's offering of being a simple data format, YAML is actually very |
|
112 |
deep and complex. Implementing the entirety of the YAML specification is |
|
113 |
a daunting task. |
|
114 |
|
|
115 |
For this reason I am currently working on 3 different YAML |
|
116 |
implementations. |
|
117 |
|
|
118 |
YAML |
|
119 |
The main YAML distribution will keeping evolving to support the |
|
120 |
entire YAML specification in pure Perl. This may not be the fastest |
|
121 |
or most stable module though. Currently, YAML.pm has lots of known |
|
122 |
bugs. It is mostly a great tool for dumping Perl data structures to |
|
123 |
a readable form. |
|
124 |
|
|
125 |
YAML::Lite |
|
126 |
The point of YAML::Lite is to strip YAML down to the 90% that people |
|
127 |
use most and offer that in a small, fast, stable, pure Perl form. |
|
128 |
YAML::Lite will simply die when it is asked to do something it |
|
129 |
can't. |
|
130 |
|
|
131 |
YAML::Syck |
|
132 |
"libsyck" is the C based YAML processing library used by the Ruby |
|
133 |
programming language (and also Python, PHP and Pugs). YAML::Syck is |
|
134 |
the Perl binding to "libsyck". It should be very fast, but may have |
|
135 |
problems of its own. It will also require C compilation. |
|
136 |
|
|
137 |
NOTE: Audrey Tang has actually completed this module and it works |
|
138 |
great and is 10 times faster than YAML.pm. |
|
139 |
|
|
140 |
In the future, there will likely be even more YAML modules. Remember, |
|
141 |
people other than Ingy are allowed to write YAML modules! |
|
142 |
|
|
143 |
FUNCTIONAL USAGE |
|
144 |
YAML is completely OO under the hood. Still it exports a few useful top |
|
145 |
level functions so that it is dead simple to use. These functions just |
|
146 |
do the OO stuff for you. If you want direct access to the OO API see the |
|
147 |
documentation for YAML::Dumper and YAML::Loader. |
|
148 |
|
|
149 |
Exported Functions |
|
150 |
The following functions are exported by YAML.pm by default. The reason |
|
151 |
they are exported is so that YAML works much like Data::Dumper. If you |
|
152 |
don't want functions to be imported, just use YAML with an empty import |
|
153 |
list: |
|
154 |
|
|
155 |
use YAML (); |
|
156 |
|
|
157 |
Dump(list-of-Perl-data-structures) |
|
158 |
Turn Perl data into YAML. This function works very much like |
|
159 |
Data::Dumper::Dumper(). It takes a list of Perl data strucures and |
|
160 |
dumps them into a serialized form. It returns a string containing |
|
161 |
the YAML stream. The structures can be references or plain scalars. |
|
162 |
|
|
163 |
Load(string-containing-a-YAML-stream) |
|
164 |
Turn YAML into Perl data. This is the opposite of Dump. Just like |
|
165 |
Storable's thaw() function or the eval() function in relation to |
|
166 |
Data::Dumper. It parses a string containing a valid YAML stream into |
|
167 |
a list of Perl data structures. |
|
168 |
|
|
169 |
Exportable Functions |
|
170 |
These functions are not exported by default but you can request them in |
|
171 |
an import list like this: |
|
172 |
|
|
173 |
use YAML qw'freeze thaw Bless'; |
|
174 |
|
|
175 |
freeze() and thaw() |
|
176 |
Aliases to Dump() and Load() for Storable fans. This will also allow |
|
177 |
YAML.pm to be plugged directly into modules like POE.pm, that use |
|
178 |
the freeze/thaw API for internal serialization. |
|
179 |
|
|
180 |
DumpFile(filepath, list) |
|
181 |
Writes the YAML stream to a file instead of just returning a string. |
|
182 |
|
|
183 |
LoadFile(filepath) |
|
184 |
Reads the YAML stream from a file instead of a string. |
|
185 |
|
|
186 |
Bless(perl-node, [yaml-node | class-name]) |
|
187 |
Associate a normal Perl node, with a yaml node. A yaml node is an |
|
188 |
object tied to the YAML::Node class. The second argument is either a |
|
189 |
yaml node that you've already created or a class (package) name that |
|
190 |
supports a yaml_dump() function. A yaml_dump() function should take |
|
191 |
a perl node and return a yaml node. If no second argument is |
|
192 |
provided, Bless will create a yaml node. This node is not returned, |
|
193 |
but can be retrieved with the Blessed() function. |
|
194 |
|
|
195 |
Here's an example of how to use Bless. Say you have a hash |
|
196 |
containing three keys, but you only want to dump two of them. |
|
197 |
Furthermore the keys must be dumped in a certain order. Here's how |
|
198 |
you do that: |
|
199 |
|
|
200 |
use YAML qw(Dump Bless); |
|
201 |
$hash = {apple => 'good', banana => 'bad', cauliflower => 'ugly'}; |
|
202 |
print Dump $hash; |
|
203 |
Bless($hash)->keys(['banana', 'apple']); |
|
204 |
print Dump $hash; |
|
205 |
|
|
206 |
produces: |
|
207 |
|
|
208 |
--- |
|
209 |
apple: good |
|
210 |
banana: bad |
|
211 |
cauliflower: ugly |
|
212 |
--- |
|
213 |
banana: bad |
|
214 |
apple: good |
|
215 |
|
|
216 |
Bless returns the tied part of a yaml-node, so that you can call the |
|
217 |
YAML::Node methods. This is the same thing that YAML::Node::ynode() |
|
218 |
returns. So another way to do the above example is: |
|
219 |
|
|
220 |
use YAML qw(Dump Bless); |
|
221 |
use YAML::Node; |
|
222 |
$hash = {apple => 'good', banana => 'bad', cauliflower => 'ugly'}; |
|
223 |
print Dump $hash; |
|
224 |
Bless($hash); |
|
225 |
$ynode = ynode(Blessed($hash)); |
|
226 |
$ynode->keys(['banana', 'apple']); |
|
227 |
print Dump $hash; |
|
228 |
|
|
229 |
Note that Blessing a Perl data structure does not change it anyway. |
|
230 |
The extra information is stored separately and looked up by the |
|
231 |
Blessed node's memory address. |
|
232 |
|
|
233 |
Blessed(perl-node) |
|
234 |
Returns the yaml node that a particular perl node is associated with |
|
235 |
(see above). Returns undef if the node is not (YAML) Blessed. |
|
236 |
|
|
237 |
GLOBAL OPTIONS |
|
238 |
YAML options are set using a group of global variables in the YAML |
|
239 |
namespace. This is similar to how Data::Dumper works. |
|
240 |
|
|
241 |
For example, to change the indentation width, do something like: |
|
242 |
|
|
243 |
local $YAML::Indent = 3; |
|
244 |
|
|
245 |
The current options are: |
|
246 |
|
|
247 |
DumperClass |
|
248 |
You can override which module/class YAML uses for Dumping data. |
|
249 |
|
|
250 |
LoaderClass |
|
251 |
You can override which module/class YAML uses for Loading data. |
|
252 |
|
|
253 |
Indent |
|
254 |
This is the number of space characters to use for each indentation |
|
255 |
level when doing a Dump(). The default is 2. |
|
256 |
|
|
257 |
By the way, YAML can use any number of characters for indentation at |
|
258 |
any level. So if you are editing YAML by hand feel free to do it |
|
259 |
anyway that looks pleasing to you; just be consistent for a given |
|
260 |
level. |
|
261 |
|
|
262 |
SortKeys |
|
263 |
Default is 1. (true) |
|
264 |
|
|
265 |
Tells YAML.pm whether or not to sort hash keys when storing a |
|
266 |
document. |
|
267 |
|
|
268 |
YAML::Node objects can have their own sort order, which is usually |
|
269 |
what you want. To override the YAML::Node order and sort the keys |
|
270 |
anyway, set SortKeys to 2. |
|
271 |
|
|
272 |
Stringify |
|
273 |
Default is 0. (false) |
|
274 |
|
|
275 |
Objects with string overloading should honor the overloading and |
|
276 |
dump the stringification of themselves, rather than the actual |
|
277 |
object's guts. |
|
278 |
|
|
279 |
UseHeader |
|
280 |
Default is 1. (true) |
|
281 |
|
|
282 |
This tells YAML.pm whether to use a separator string for a Dump |
|
283 |
operation. This only applies to the first document in a stream. |
|
284 |
Subsequent documents must have a YAML header by definition. |
|
285 |
|
|
286 |
UseVersion |
|
287 |
Default is 0. (false) |
|
288 |
|
|
289 |
Tells YAML.pm whether to include the YAML version on the |
|
290 |
separator/header. |
|
291 |
|
|
292 |
--- %YAML:1.0 |
|
293 |
|
|
294 |
AnchorPrefix |
|
295 |
Default is ''. |
|
296 |
|
|
297 |
Anchor names are normally numeric. YAML.pm simply starts with '1' |
|
298 |
and increases by one for each new anchor. This option allows you to |
|
299 |
specify a string to be prepended to each anchor number. |
|
300 |
|
|
301 |
UseCode |
|
302 |
Setting the UseCode option is a shortcut to set both the DumpCode |
|
303 |
and LoadCode options at once. Setting UseCode to '1' tells YAML.pm |
|
304 |
to dump Perl code references as Perl (using B::Deparse) and to load |
|
305 |
them back into memory using eval(). The reason this has to be an |
|
306 |
option is that using eval() to parse untrusted code is, well, |
|
307 |
untrustworthy. |
|
308 |
|
|
309 |
DumpCode |
|
310 |
Determines if and how YAML.pm should serialize Perl code references. |
|
311 |
By default YAML.pm will dump code references as dummy placeholders |
|
312 |
(much like Data::Dumper). If DumpCode is set to '1' or 'deparse', |
|
313 |
code references will be dumped as actual Perl code. |
|
314 |
|
|
315 |
DumpCode can also be set to a subroutine reference so that you can |
|
316 |
write your own serializing routine. YAML.pm passes you the code ref. |
|
317 |
You pass back the serialization (as a string) and a format |
|
318 |
indicator. The format indicator is a simple string like: 'deparse' |
|
319 |
or 'bytecode'. |
|
320 |
|
|
321 |
LoadCode |
|
322 |
LoadCode is the opposite of DumpCode. It tells YAML if and how to |
|
323 |
deserialize code references. When set to '1' or 'deparse' it will |
|
324 |
use "eval()". Since this is potentially risky, only use this option |
|
325 |
if you know where your YAML has been. |
|
326 |
|
|
327 |
LoadCode can also be set to a subroutine reference so that you can |
|
328 |
write your own deserializing routine. YAML.pm passes the |
|
329 |
serialization (as a string) and a format indicator. You pass back |
|
330 |
the code reference. |
|
331 |
|
|
332 |
UseBlock |
|
333 |
YAML.pm uses heuristics to guess which scalar style is best for a |
|
334 |
given node. Sometimes you'll want all multiline scalars to use the |
|
335 |
'block' style. If so, set this option to 1. |
|
336 |
|
|
337 |
NOTE: YAML's block style is akin to Perl's here-document. |
|
338 |
|
|
339 |
UseFold |
|
340 |
If you want to force YAML to use the 'folded' style for all |
|
341 |
multiline scalars, then set $UseFold to 1. |
|
342 |
|
|
343 |
NOTE: YAML's folded style is akin to the way HTML folds text, except |
|
344 |
smarter. |
|
345 |
|
|
346 |
UseAliases |
|
347 |
YAML has an alias mechanism such that any given structure in memory |
|
348 |
gets serialized once. Any other references to that structure are |
|
349 |
serialized only as alias markers. This is how YAML can serialize |
|
350 |
duplicate and recursive structures. |
|
351 |
|
|
352 |
Sometimes, when you KNOW that your data is nonrecursive in nature, |
|
353 |
you may want to serialize such that every node is expressed in full. |
|
354 |
(ie as a copy of the original). Setting $YAML::UseAliases to 0 will |
|
355 |
allow you to do this. This also may result in faster processing |
|
356 |
because the lookup overhead is by bypassed. |
|
357 |
|
|
358 |
THIS OPTION CAN BE DANGEROUS. *If* your data is recursive, this |
|
359 |
option *will* cause Dump() to run in an endless loop, chewing up |
|
360 |
your computers memory. You have been warned. |
|
361 |
|
|
362 |
CompressSeries |
|
363 |
Default is 1. |
|
364 |
|
|
365 |
Compresses the formatting of arrays of hashes: |
|
366 |
|
|
367 |
- |
|
368 |
foo: bar |
|
369 |
- |
|
370 |
bar: foo |
|
371 |
|
|
372 |
becomes: |
|
373 |
|
|
374 |
- foo: bar |
|
375 |
- bar: foo |
|
376 |
|
|
377 |
Since this output is usually more desirable, this option is turned |
|
378 |
on by default. |
|
379 |
|
|
380 |
YAML TERMINOLOGY |
|
381 |
YAML is a full featured data serialization language, and thus has its |
|
382 |
own terminology. |
|
383 |
|
|
384 |
It is important to remember that although YAML is heavily influenced by |
|
385 |
Perl and Python, it is a language in its own right, not merely just a |
|
386 |
representation of Perl structures. |
|
387 |
|
|
388 |
YAML has three constructs that are conspicuously similar to Perl's hash, |
|
389 |
array, and scalar. They are called mapping, sequence, and string |
|
390 |
respectively. By default, they do what you would expect. But each |
|
391 |
instance may have an explicit or implicit tag (type) that makes it |
|
392 |
behave differently. In this manner, YAML can be extended to represent |
|
393 |
Perl's Glob or Python's tuple, or Ruby's Bigint. |
|
394 |
|
|
395 |
stream |
|
396 |
A YAML stream is the full sequence of unicode characters that a YAML |
|
397 |
parser would read or a YAML emitter would write. A stream may |
|
398 |
contain one or more YAML documents separated by YAML headers. |
|
399 |
|
|
400 |
--- |
|
401 |
a: mapping |
|
402 |
foo: bar |
|
403 |
--- |
|
404 |
- a |
|
405 |
- sequence |
|
406 |
|
|
407 |
document |
|
408 |
A YAML document is an independent data structure representation |
|
409 |
within a stream. It is a top level node. Each document in a YAML |
|
410 |
stream must begin with a YAML header line. Actually the header is |
|
411 |
optional on the first document. |
|
412 |
|
|
413 |
--- |
|
414 |
This: top level mapping |
|
415 |
is: |
|
416 |
- a |
|
417 |
- YAML |
|
418 |
- document |
|
419 |
|
|
420 |
header |
|
421 |
A YAML header is a line that begins a YAML document. It consists of |
|
422 |
three dashes, possibly followed by more info. Another purpose of the |
|
423 |
header line is that it serves as a place to put top level tag and |
|
424 |
anchor information. |
|
425 |
|
|
426 |
--- !recursive-sequence &001 |
|
427 |
- * 001 |
|
428 |
- * 001 |
|
429 |
|
|
430 |
node |
|
431 |
A YAML node is the representation of a particular data stucture. |
|
432 |
Nodes may contain other nodes. (In Perl terms, nodes are like |
|
433 |
scalars. Strings, arrayrefs and hashrefs. But this refers to the |
|
434 |
serialized format, not the in-memory structure.) |
|
435 |
|
|
436 |
tag This is similar to a type. It indicates how a particular YAML node |
|
437 |
serialization should be transferred into or out of memory. For |
|
438 |
instance a Foo::Bar object would use the tag 'perl/Foo::Bar': |
|
439 |
|
|
440 |
- !perl/Foo::Bar |
|
441 |
foo: 42 |
|
442 |
bar: stool |
|
443 |
|
|
444 |
collection |
|
445 |
A collection is the generic term for a YAML data grouping. YAML has |
|
446 |
two types of collections: mappings and sequences. (Similar to hashes |
|
447 |
and arrays) |
|
448 |
|
|
449 |
mapping |
|
450 |
A mapping is a YAML collection defined by unordered key/value pairs |
|
451 |
with unique keys. By default YAML mappings are loaded into Perl |
|
452 |
hashes. |
|
453 |
|
|
454 |
a mapping: |
|
455 |
foo: bar |
|
456 |
two: times two is 4 |
|
457 |
|
|
458 |
sequence |
|
459 |
A sequence is a YAML collection defined by an ordered list of |
|
460 |
elements. By default YAML sequences are loaded into Perl arrays. |
|
461 |
|
|
462 |
a sequence: |
|
463 |
- one bourbon |
|
464 |
- one scotch |
|
465 |
- one beer |
|
466 |
|
|
467 |
scalar |
|
468 |
A scalar is a YAML node that is a single value. By default YAML |
|
469 |
scalars are loaded into Perl scalars. |
|
470 |
|
|
471 |
a scalar key: a scalar value |
|
472 |
|
|
473 |
YAML has many styles for representing scalars. This is important |
|
474 |
because varying data will have varying formatting requirements to |
|
475 |
retain the optimum human readability. |
|
476 |
|
|
477 |
plain scalar |
|
478 |
A plain sclar is unquoted. All plain scalars are automatic |
|
479 |
candidates for "implicit tagging". This means that their tag may be |
|
480 |
determined automatically by examination. The typical uses for this |
|
481 |
are plain alpha strings, integers, real numbers, dates, times and |
|
482 |
currency. |
|
483 |
|
|
484 |
- a plain string |
|
485 |
- -42 |
|
486 |
- 3.1415 |
|
487 |
- 12:34 |
|
488 |
- 123 this is an error |
|
489 |
|
|
490 |
single quoted scalar |
|
491 |
This is similar to Perl's use of single quotes. It means no escaping |
|
492 |
except for single quotes which are escaped by using two adjacent |
|
493 |
single quotes. |
|
494 |
|
|
495 |
- 'When I say ''\n'' I mean "backslash en"' |
|
496 |
|
|
497 |
double quoted scalar |
|
498 |
This is similar to Perl's use of double quotes. Character escaping |
|
499 |
can be used. |
|
500 |
|
|
501 |
- "This scalar\nhas two lines, and a bell -->\a" |
|
502 |
|
|
503 |
folded scalar |
|
504 |
This is a multiline scalar which begins on the next line. It is |
|
505 |
indicated by a single right angle bracket. It is unescaped like the |
|
506 |
single quoted scalar. Line folding is also performed. |
|
507 |
|
|
508 |
- > |
|
509 |
This is a multiline scalar which begins on |
|
510 |
the next line. It is indicated by a single |
|
511 |
carat. It is unescaped like the single |
|
512 |
quoted scalar. Line folding is also |
|
513 |
performed. |
|
514 |
|
|
515 |
block scalar |
|
516 |
This final multiline form is akin to Perl's here-document except |
|
517 |
that (as in all YAML data) scope is indicated by indentation. |
|
518 |
Therefore, no ending marker is required. The data is verbatim. No |
|
519 |
line folding. |
|
520 |
|
|
521 |
- | |
|
522 |
QTY DESC PRICE TOTAL |
|
523 |
--- ---- ----- ----- |
|
524 |
1 Foo Fighters $19.95 $19.95 |
|
525 |
2 Bar Belles $29.95 $59.90 |
|
526 |
|
|
527 |
parser |
|
528 |
A YAML processor has four stages: parse, load, dump, emit. |
|
529 |
|
|
530 |
A parser parses a YAML stream. YAML.pm's Load() function contains a |
|
531 |
parser. |
|
532 |
|
|
533 |
loader |
|
534 |
The other half of the Load() function is a loader. This takes the |
|
535 |
information from the parser and loads it into a Perl data structure. |
|
536 |
|
|
537 |
dumper |
|
538 |
The Dump() function consists of a dumper and an emitter. The dumper |
|
539 |
walks through each Perl data structure and gives info to the |
|
540 |
emitter. |
|
541 |
|
|
542 |
emitter |
|
543 |
The emitter takes info from the dumper and turns it into a YAML |
|
544 |
stream. |
|
545 |
|
|
546 |
NOTE: In YAML.pm the parser/loader and the dumper/emitter code are |
|
547 |
currently very closely tied together. In the future they may be |
|
548 |
broken into separate stages. |
|
549 |
|
|
550 |
For more information please refer to the immensely helpful YAML |
|
551 |
specification available at <http://www.yaml.org/spec/>. |
|
552 |
|
|
553 |
ysh - The YAML Shell |
|
554 |
The YAML distribution ships with a script called 'ysh', the YAML shell. |
|
555 |
ysh provides a simple, interactive way to play with YAML. If you type in |
|
556 |
Perl code, it displays the result in YAML. If you type in YAML it turns |
|
557 |
it into Perl code. |
|
558 |
|
|
559 |
To run ysh, (assuming you installed it along with YAML.pm) simply type: |
|
560 |
|
|
561 |
ysh [options] |
|
562 |
|
|
563 |
Please read the "ysh" documentation for the full details. There are lots |
|
564 |
of options. |
|
565 |
|
|
566 |
BUGS & DEFICIENCIES |
|
567 |
If you find a bug in YAML, please try to recreate it in the YAML Shell |
|
568 |
with logging turned on ('ysh -L'). When you have successfully reproduced |
|
569 |
the bug, please mail the LOG file to the author (ingy@cpan.org). |
|
570 |
|
|
571 |
WARNING: This is still *ALPHA* code. Well, most of this code has been |
|
572 |
around for years... |
|
573 |
|
|
574 |
BIGGER WARNING: YAML.pm has been slow in the making, but I am committed |
|
575 |
to having top notch YAML tools in the Perl world. The YAML team is close |
|
576 |
to finalizing the YAML 1.1 spec. This version of YAML.pm is based off of |
|
577 |
a very old pre 1.0 spec. In actuality there isn't a ton of difference, |
|
578 |
and this YAML.pm is still fairly useful. Things will get much better in |
|
579 |
the future. |
|
580 |
|
|
581 |
RESOURCES |
|
582 |
<http://lists.sourceforge.net/lists/listinfo/yaml-core> is the mailing |
|
583 |
list. This is where the language is discussed and designed. |
|
584 |
|
|
585 |
<http://www.yaml.org> is the official YAML website. |
|
586 |
|
|
587 |
<http://www.yaml.org/spec/> is the YAML 1.0 specification. |
|
588 |
|
|
589 |
<http://yaml.kwiki.org> is the official YAML wiki. |
|
590 |
|
|
591 |
SEE ALSO |
|
592 |
See YAML::Syck. Fast! |
|
593 |
|
|
594 |
AUTHOR |
|
595 |
Ingy döt Net <ingy@cpan.org> |
|
596 |
|
|
597 |
is resonsible for YAML.pm. |
|
598 |
|
|
599 |
The YAML serialization language is the result of years of collaboration |
|
600 |
between Oren Ben-Kiki, Clark Evans and Ingy döt Net. Several others |
|
601 |
have added help along the way. |
|
602 |
|
|
603 |
COPYRIGHT |
|
604 |
Copyright (c) 2005, 2006. Ingy döt Net. All rights reserved. Copyright |
|
605 |
(c) 2001, 2002, 2005. Brian Ingerson. All rights reserved. |
|
606 |
|
|
607 |
This program is free software; you can redistribute it and/or modify it |
|
608 |
under the same terms as Perl itself. |
|
609 |
|
|
610 |
See <http://www.perl.com/perl/misc/Artistic.html> |
|
611 |
|
modules/fallback/CGI/LICENSE | ||
---|---|---|
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 |
|
modules/fallback/CGI/README | ||
---|---|---|
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. |
Auch abrufbar als: Unified diff
Dokumentation der Perl-Module von Drittanbietern in eigenes Verzeichnis verschoben.