Commit | Line | Data |
---|---|---|
68dc0745 | 1 | =head1 NAME |
2 | ||
0bc0ad85 | 3 | perlfaq - frequently asked questions about Perl ($Date: 2002/01/28 04:17:26 $) |
68dc0745 | 4 | |
5 | =head1 DESCRIPTION | |
6 | ||
40d4dc3e | 7 | The perlfaq is structured into the following documents: |
68dc0745 | 8 | |
68dc0745 | 9 | |
40d4dc3e | 10 | =head2 perlfaq: Structural overview of the FAQ. |
68dc0745 | 11 | |
12 | This document. | |
13 | ||
40d4dc3e | 14 | =head2 L<perlfaq1>: General Questions About Perl |
68dc0745 | 15 | |
16 | Very general, high-level information about Perl. | |
17 | ||
65acb1b1 TC |
18 | =over 4 |
19 | ||
40d4dc3e RB |
20 | =item * |
21 | ||
22 | What is Perl? | |
23 | ||
24 | =item * | |
25 | ||
26 | Who supports Perl? Who develops it? Why is it free? | |
27 | ||
28 | =item * | |
29 | ||
30 | Which version of Perl should I use? | |
31 | ||
32 | =item * | |
33 | ||
34 | What are perl4 and perl5? | |
35 | ||
36 | =item * | |
37 | ||
38 | What is perl6? | |
65acb1b1 | 39 | |
40d4dc3e | 40 | =item * |
65acb1b1 | 41 | |
40d4dc3e | 42 | How stable is Perl? |
65acb1b1 | 43 | |
40d4dc3e | 44 | =item * |
65acb1b1 | 45 | |
40d4dc3e | 46 | Is Perl difficult to learn? |
65acb1b1 | 47 | |
40d4dc3e | 48 | =item * |
65acb1b1 | 49 | |
40d4dc3e | 50 | How does Perl compare with other languages like Java, Python, REXX, Scheme, or Tcl? |
65acb1b1 | 51 | |
40d4dc3e | 52 | =item * |
65acb1b1 | 53 | |
40d4dc3e | 54 | Can I do [task] in Perl? |
65acb1b1 | 55 | |
40d4dc3e | 56 | =item * |
65acb1b1 | 57 | |
40d4dc3e | 58 | When shouldn't I program in Perl? |
65acb1b1 | 59 | |
40d4dc3e | 60 | =item * |
65acb1b1 | 61 | |
40d4dc3e | 62 | What's the difference between "perl" and "Perl"? |
65acb1b1 | 63 | |
40d4dc3e | 64 | =item * |
65acb1b1 | 65 | |
40d4dc3e RB |
66 | Is it a Perl program or a Perl script? |
67 | ||
68 | =item * | |
69 | ||
70 | What is a JAPH? | |
71 | ||
72 | =item * | |
73 | ||
74 | Where can I get a list of Larry Wall witticisms? | |
75 | ||
76 | =item * | |
77 | ||
78 | How can I convince my sysadmin/supervisor/employees to use version 5/5.005/Perl instead of some other language? | |
65acb1b1 TC |
79 | |
80 | =back | |
81 | ||
82 | ||
40d4dc3e | 83 | =head2 L<perlfaq2>: Obtaining and Learning about Perl |
68dc0745 | 84 | |
92c2ed05 | 85 | Where to find source and documentation to Perl, support, |
68dc0745 | 86 | and related matters. |
87 | ||
65acb1b1 TC |
88 | =over 4 |
89 | ||
40d4dc3e RB |
90 | =item * |
91 | ||
92 | What machines support Perl? Where do I get it? | |
93 | ||
94 | =item * | |
95 | ||
96 | How can I get a binary version of Perl? | |
65acb1b1 | 97 | |
40d4dc3e | 98 | =item * |
65acb1b1 | 99 | |
40d4dc3e | 100 | I don't have a C compiler on my system. How can I compile perl? |
65acb1b1 | 101 | |
40d4dc3e | 102 | =item * |
65acb1b1 | 103 | |
40d4dc3e | 104 | I copied the Perl binary from one machine to another, but scripts don't work. |
65acb1b1 | 105 | |
40d4dc3e | 106 | =item * |
65acb1b1 | 107 | |
40d4dc3e | 108 | I grabbed the sources and tried to compile but gdbm/dynamic loading/malloc/linking/... failed. How do I make it work? |
65acb1b1 | 109 | |
40d4dc3e | 110 | =item * |
65acb1b1 | 111 | |
40d4dc3e | 112 | What modules and extensions are available for Perl? What is CPAN? What does CPAN/src/... mean? |
65acb1b1 | 113 | |
40d4dc3e | 114 | =item * |
65acb1b1 | 115 | |
40d4dc3e | 116 | Is there an ISO or ANSI certified version of Perl? |
65acb1b1 | 117 | |
40d4dc3e | 118 | =item * |
65acb1b1 | 119 | |
40d4dc3e | 120 | Where can I get information on Perl? |
65acb1b1 | 121 | |
40d4dc3e | 122 | =item * |
65acb1b1 | 123 | |
40d4dc3e | 124 | What are the Perl newsgroups on Usenet? Where do I post questions? |
65acb1b1 | 125 | |
40d4dc3e | 126 | =item * |
65acb1b1 | 127 | |
40d4dc3e | 128 | Where should I post source code? |
65acb1b1 | 129 | |
40d4dc3e RB |
130 | =item * |
131 | ||
132 | Perl Books | |
133 | ||
134 | =item * | |
135 | ||
136 | Perl in Magazines | |
137 | ||
138 | =item * | |
139 | ||
140 | Perl on the Net: FTP and WWW Access | |
141 | ||
142 | =item * | |
143 | ||
144 | What mailing lists are there for Perl? | |
145 | ||
146 | =item * | |
147 | ||
148 | Archives of comp.lang.perl.misc | |
149 | ||
150 | =item * | |
151 | ||
152 | Where can I buy a commercial version of Perl? | |
153 | ||
154 | =item * | |
155 | ||
156 | Where do I send bug reports? | |
157 | ||
158 | =item * | |
159 | ||
160 | What is perl.com? Perl Mongers? pm.org? perl.org? | |
65acb1b1 TC |
161 | |
162 | =back | |
163 | ||
164 | ||
40d4dc3e | 165 | =head2 L<perlfaq3>: Programming Tools |
68dc0745 | 166 | |
167 | Programmer tools and programming support. | |
168 | ||
65acb1b1 TC |
169 | =over 4 |
170 | ||
40d4dc3e RB |
171 | =item * |
172 | ||
173 | How do I do (anything)? | |
174 | ||
175 | =item * | |
176 | ||
177 | How can I use Perl interactively? | |
178 | ||
179 | =item * | |
65acb1b1 | 180 | |
40d4dc3e | 181 | Is there a Perl shell? |
65acb1b1 | 182 | |
40d4dc3e | 183 | =item * |
65acb1b1 | 184 | |
40d4dc3e | 185 | How do I debug my Perl programs? |
65acb1b1 | 186 | |
40d4dc3e | 187 | =item * |
65acb1b1 | 188 | |
40d4dc3e | 189 | How do I profile my Perl programs? |
65acb1b1 | 190 | |
40d4dc3e | 191 | =item * |
65acb1b1 | 192 | |
40d4dc3e | 193 | How do I cross-reference my Perl programs? |
65acb1b1 | 194 | |
40d4dc3e | 195 | =item * |
65acb1b1 | 196 | |
40d4dc3e | 197 | Is there a pretty-printer (formatter) for Perl? |
65acb1b1 | 198 | |
40d4dc3e | 199 | =item * |
65acb1b1 | 200 | |
40d4dc3e | 201 | Is there a ctags for Perl? |
65acb1b1 | 202 | |
40d4dc3e | 203 | =item * |
65acb1b1 | 204 | |
40d4dc3e | 205 | Is there an IDE or Windows Perl Editor? |
65acb1b1 | 206 | |
40d4dc3e | 207 | =item * |
65acb1b1 | 208 | |
40d4dc3e | 209 | Where can I get Perl macros for vi? |
65acb1b1 | 210 | |
40d4dc3e | 211 | =item * |
65acb1b1 | 212 | |
40d4dc3e | 213 | Where can I get perl-mode for emacs? |
65acb1b1 | 214 | |
40d4dc3e | 215 | =item * |
65acb1b1 | 216 | |
40d4dc3e | 217 | How can I use curses with Perl? |
65acb1b1 | 218 | |
40d4dc3e | 219 | =item * |
65acb1b1 | 220 | |
40d4dc3e | 221 | How can I use X or Tk with Perl? |
65acb1b1 | 222 | |
40d4dc3e | 223 | =item * |
65acb1b1 | 224 | |
40d4dc3e | 225 | How can I generate simple menus without using CGI or Tk? |
65acb1b1 | 226 | |
40d4dc3e | 227 | =item * |
65acb1b1 | 228 | |
40d4dc3e | 229 | How can I make my Perl program run faster? |
65acb1b1 | 230 | |
40d4dc3e | 231 | =item * |
65acb1b1 | 232 | |
40d4dc3e RB |
233 | How can I make my Perl program take less memory? |
234 | ||
235 | =item * | |
236 | ||
237 | Is it unsafe to return a pointer to local data? | |
238 | ||
239 | =item * | |
240 | ||
241 | How can I free an array or hash so my program shrinks? | |
242 | ||
243 | =item * | |
244 | ||
245 | How can I make my CGI script more efficient? | |
246 | ||
247 | =item * | |
248 | ||
249 | How can I hide the source for my Perl program? | |
250 | ||
251 | =item * | |
252 | ||
253 | How can I compile my Perl program into byte code or C? | |
254 | ||
255 | =item * | |
256 | ||
257 | How can I compile Perl into Java? | |
258 | ||
259 | =item * | |
260 | ||
261 | How can I get C<#!perl> to work on [MS-DOS,NT,...]? | |
262 | ||
263 | =item * | |
264 | ||
265 | Can I write useful Perl programs on the command line? | |
266 | ||
267 | =item * | |
268 | ||
269 | Why don't Perl one-liners work on my DOS/Mac/VMS system? | |
270 | ||
271 | =item * | |
272 | ||
273 | Where can I learn about CGI or Web programming in Perl? | |
274 | ||
275 | =item * | |
276 | ||
277 | Where can I learn about object-oriented Perl programming? | |
278 | ||
279 | =item * | |
280 | ||
281 | Where can I learn about linking C with Perl? [h2xs, xsubpp] | |
282 | ||
283 | =item * | |
284 | ||
285 | I've read perlembed, perlguts, etc., but I can't embed perl in | |
a6dd486b | 286 | my C program; what am I doing wrong? |
65acb1b1 | 287 | |
40d4dc3e RB |
288 | =item * |
289 | ||
290 | When I tried to run my script, I got this message. What does it | |
65acb1b1 TC |
291 | mean? |
292 | ||
40d4dc3e RB |
293 | =item * |
294 | ||
295 | What's MakeMaker? | |
65acb1b1 TC |
296 | |
297 | =back | |
298 | ||
299 | ||
40d4dc3e | 300 | =head2 L<perlfaq4>: Data Manipulation |
68dc0745 | 301 | |
302 | Manipulating numbers, dates, strings, arrays, hashes, and | |
303 | miscellaneous data issues. | |
304 | ||
65acb1b1 TC |
305 | =over 4 |
306 | ||
40d4dc3e RB |
307 | =item * |
308 | ||
309 | Why am I getting long decimals (eg, 19.9499999999999) instead of the numbers I should be getting (eg, 19.95)? | |
310 | ||
311 | =item * | |
312 | ||
313 | Why isn't my octal data interpreted correctly? | |
314 | ||
315 | =item * | |
316 | ||
317 | Does Perl have a round() function? What about ceil() and floor()? Trig functions? | |
318 | ||
319 | =item * | |
320 | ||
321 | How do I convert bits into ints? | |
322 | ||
323 | =item * | |
324 | ||
325 | Why doesn't & work the way I want it to? | |
65acb1b1 | 326 | |
40d4dc3e | 327 | =item * |
65acb1b1 | 328 | |
40d4dc3e | 329 | How do I multiply matrices? |
65acb1b1 | 330 | |
40d4dc3e | 331 | =item * |
65acb1b1 | 332 | |
40d4dc3e | 333 | How do I perform an operation on a series of integers? |
65acb1b1 | 334 | |
40d4dc3e | 335 | =item * |
65acb1b1 | 336 | |
40d4dc3e | 337 | How can I output Roman numerals? |
65acb1b1 | 338 | |
40d4dc3e | 339 | =item * |
65acb1b1 | 340 | |
40d4dc3e | 341 | Why aren't my random numbers random? |
65acb1b1 | 342 | |
40d4dc3e | 343 | =item * |
65acb1b1 | 344 | |
40d4dc3e | 345 | How do I find the week-of-the-year/day-of-the-year? |
d92eb7b0 | 346 | |
40d4dc3e | 347 | =item * |
65acb1b1 | 348 | |
40d4dc3e | 349 | How do I find the current century or millennium? |
65acb1b1 | 350 | |
40d4dc3e | 351 | =item * |
65acb1b1 | 352 | |
40d4dc3e | 353 | How can I compare two dates and find the difference? |
65acb1b1 | 354 | |
40d4dc3e | 355 | =item * |
65acb1b1 | 356 | |
40d4dc3e | 357 | How can I take a string and turn it into epoch seconds? |
65acb1b1 | 358 | |
40d4dc3e | 359 | =item * |
65acb1b1 | 360 | |
40d4dc3e | 361 | How can I find the Julian Day? |
65acb1b1 | 362 | |
40d4dc3e | 363 | =item * |
65acb1b1 | 364 | |
40d4dc3e | 365 | How do I find yesterday's date? |
65acb1b1 | 366 | |
40d4dc3e | 367 | =item * |
65acb1b1 | 368 | |
40d4dc3e | 369 | Does Perl have a Year 2000 problem? Is Perl Y2K compliant? |
65acb1b1 | 370 | |
40d4dc3e | 371 | =item * |
65acb1b1 | 372 | |
40d4dc3e | 373 | How do I validate input? |
65acb1b1 | 374 | |
40d4dc3e | 375 | =item * |
65acb1b1 | 376 | |
40d4dc3e | 377 | How do I unescape a string? |
65acb1b1 | 378 | |
40d4dc3e | 379 | =item * |
65acb1b1 | 380 | |
40d4dc3e RB |
381 | How do I remove consecutive pairs of characters? |
382 | ||
383 | =item * | |
384 | ||
385 | How do I expand function calls in a string? | |
386 | ||
387 | =item * | |
388 | ||
389 | How do I find matching/nesting anything? | |
390 | ||
391 | =item * | |
392 | ||
393 | How do I reverse a string? | |
394 | ||
395 | =item * | |
396 | ||
397 | How do I expand tabs in a string? | |
398 | ||
399 | =item * | |
400 | ||
401 | How do I reformat a paragraph? | |
402 | ||
403 | =item * | |
404 | ||
405 | How can I access/change the first N letters of a string? | |
406 | ||
407 | =item * | |
408 | ||
409 | How do I change the Nth occurrence of something? | |
410 | ||
411 | =item * | |
412 | ||
413 | How can I count the number of occurrences of a substring within a string? | |
414 | ||
415 | =item * | |
416 | ||
417 | How do I capitalize all the words on one line? | |
418 | ||
419 | =item * | |
420 | ||
421 | How can I split a [character] delimited string except when inside | |
65acb1b1 TC |
422 | [character]? (Comma-separated files) |
423 | ||
40d4dc3e RB |
424 | =item * |
425 | ||
426 | How do I strip blank space from the beginning/end of a string? | |
427 | ||
428 | =item * | |
429 | ||
430 | How do I pad a string with blanks or pad a number with zeroes? | |
431 | ||
432 | =item * | |
433 | ||
434 | How do I extract selected columns from a string? | |
435 | ||
436 | =item * | |
437 | ||
438 | How do I find the soundex value of a string? | |
439 | ||
440 | =item * | |
441 | ||
442 | How can I expand variables in text strings? | |
443 | ||
444 | =item * | |
445 | ||
446 | What's wrong with always quoting "$vars"? | |
447 | ||
448 | =item * | |
449 | ||
450 | Why don't my <<HERE documents work? | |
451 | ||
452 | =item * | |
453 | ||
454 | What is the difference between a list and an array? | |
455 | ||
456 | =item * | |
457 | ||
458 | What is the difference between $array[1] and @array[1]? | |
459 | ||
460 | =item * | |
65acb1b1 | 461 | |
40d4dc3e | 462 | How can I remove duplicate elements from a list or array? |
65acb1b1 | 463 | |
40d4dc3e | 464 | =item * |
65acb1b1 | 465 | |
40d4dc3e | 466 | How can I tell whether a list or array contains a certain element? |
65acb1b1 | 467 | |
40d4dc3e | 468 | =item * |
65acb1b1 | 469 | |
40d4dc3e | 470 | How do I compute the difference of two arrays? How do I compute the intersection of two arrays? |
65acb1b1 | 471 | |
40d4dc3e | 472 | =item * |
65acb1b1 | 473 | |
40d4dc3e | 474 | How do I test whether two arrays or hashes are equal? |
65acb1b1 | 475 | |
40d4dc3e | 476 | =item * |
65acb1b1 | 477 | |
40d4dc3e | 478 | How do I find the first array element for which a condition is true? |
65acb1b1 | 479 | |
40d4dc3e | 480 | =item * |
65acb1b1 | 481 | |
40d4dc3e | 482 | How do I handle linked lists? |
65acb1b1 | 483 | |
40d4dc3e | 484 | =item * |
65acb1b1 | 485 | |
40d4dc3e | 486 | How do I handle circular lists? |
65acb1b1 | 487 | |
40d4dc3e | 488 | =item * |
65acb1b1 | 489 | |
40d4dc3e | 490 | How do I shuffle an array randomly? |
65acb1b1 | 491 | |
40d4dc3e | 492 | =item * |
65acb1b1 | 493 | |
40d4dc3e | 494 | How do I process/modify each element of an array? |
65acb1b1 | 495 | |
40d4dc3e | 496 | =item * |
65acb1b1 | 497 | |
40d4dc3e | 498 | How do I select a random element from an array? |
65acb1b1 | 499 | |
40d4dc3e | 500 | =item * |
65acb1b1 | 501 | |
40d4dc3e | 502 | How do I permute N elements of a list? |
65acb1b1 | 503 | |
40d4dc3e | 504 | =item * |
65acb1b1 | 505 | |
40d4dc3e | 506 | How do I sort an array by (anything)? |
65acb1b1 | 507 | |
40d4dc3e | 508 | =item * |
65acb1b1 | 509 | |
40d4dc3e | 510 | How do I manipulate arrays of bits? |
65acb1b1 | 511 | |
40d4dc3e | 512 | =item * |
65acb1b1 | 513 | |
40d4dc3e | 514 | Why does defined() return true on empty arrays and hashes? |
65acb1b1 | 515 | |
40d4dc3e | 516 | =item * |
65acb1b1 | 517 | |
40d4dc3e | 518 | How do I process an entire hash? |
65acb1b1 | 519 | |
40d4dc3e | 520 | =item * |
65acb1b1 | 521 | |
40d4dc3e | 522 | What happens if I add or remove keys from a hash while iterating over it? |
65acb1b1 | 523 | |
40d4dc3e | 524 | =item * |
65acb1b1 | 525 | |
40d4dc3e | 526 | How do I look up a hash element by value? |
65acb1b1 | 527 | |
40d4dc3e | 528 | =item * |
65acb1b1 | 529 | |
40d4dc3e | 530 | How can I know how many entries are in a hash? |
65acb1b1 | 531 | |
40d4dc3e | 532 | =item * |
65acb1b1 | 533 | |
40d4dc3e | 534 | How do I sort a hash (optionally by value instead of key)? |
65acb1b1 | 535 | |
40d4dc3e | 536 | =item * |
65acb1b1 | 537 | |
40d4dc3e | 538 | How can I always keep my hash sorted? |
65acb1b1 | 539 | |
40d4dc3e | 540 | =item * |
65acb1b1 | 541 | |
40d4dc3e | 542 | What's the difference between "delete" and "undef" with hashes? |
65acb1b1 | 543 | |
40d4dc3e | 544 | =item * |
65acb1b1 | 545 | |
40d4dc3e | 546 | Why don't my tied hashes make the defined/exists distinction? |
65acb1b1 | 547 | |
40d4dc3e RB |
548 | =item * |
549 | ||
550 | How do I reset an each() operation part-way through? | |
551 | ||
552 | =item * | |
553 | ||
554 | How can I get the unique keys from two hashes? | |
555 | ||
556 | =item * | |
557 | ||
558 | How can I store a multidimensional array in a DBM file? | |
559 | ||
560 | =item * | |
561 | ||
562 | How can I make my hash remember the order I put elements into it? | |
563 | ||
564 | =item * | |
565 | ||
566 | Why does passing a subroutine an undefined element in a hash create it? | |
567 | ||
568 | =item * | |
569 | ||
570 | How can I make the Perl equivalent of a C structure/C++ class/hash or array of hashes or arrays? | |
571 | ||
572 | =item * | |
573 | ||
574 | How can I use a reference as a hash key? | |
575 | ||
576 | =item * | |
577 | ||
578 | How do I handle binary data correctly? | |
579 | ||
580 | =item * | |
581 | ||
582 | How do I determine whether a scalar is a number/whole/integer/float? | |
583 | ||
584 | =item * | |
585 | ||
586 | How do I keep persistent data across program calls? | |
587 | ||
588 | =item * | |
589 | ||
590 | How do I print out or copy a recursive data structure? | |
591 | ||
592 | =item * | |
593 | ||
594 | How do I define methods for every class/object? | |
595 | ||
596 | =item * | |
597 | ||
598 | How do I verify a credit card checksum? | |
599 | ||
600 | =item * | |
601 | ||
602 | How do I pack arrays of doubles or floats for XS code? | |
65acb1b1 TC |
603 | |
604 | =back | |
605 | ||
606 | ||
40d4dc3e | 607 | =head2 L<perlfaq5>: Files and Formats |
68dc0745 | 608 | |
609 | I/O and the "f" issues: filehandles, flushing, formats and footers. | |
610 | ||
65acb1b1 TC |
611 | =over 4 |
612 | ||
40d4dc3e RB |
613 | =item * |
614 | ||
615 | How do I flush/unbuffer an output filehandle? Why must I do this? | |
616 | ||
617 | =item * | |
618 | ||
619 | How do I change one line in a file/delete a line in a file/insert a line in the middle of a file/append to the beginning of a file? | |
620 | ||
621 | =item * | |
622 | ||
623 | How do I count the number of lines in a file? | |
624 | ||
625 | =item * | |
626 | ||
627 | How do I make a temporary file name? | |
628 | ||
629 | =item * | |
630 | ||
631 | How can I manipulate fixed-record-length files? | |
632 | ||
633 | =item * | |
65acb1b1 | 634 | |
40d4dc3e | 635 | How can I make a filehandle local to a subroutine? How do I pass filehandles between subroutines? How do I make an array of filehandles? |
65acb1b1 | 636 | |
40d4dc3e | 637 | =item * |
65acb1b1 | 638 | |
40d4dc3e | 639 | How can I use a filehandle indirectly? |
65acb1b1 | 640 | |
40d4dc3e | 641 | =item * |
65acb1b1 | 642 | |
40d4dc3e | 643 | How can I set up a footer format to be used with write()? |
65acb1b1 | 644 | |
40d4dc3e | 645 | =item * |
65acb1b1 | 646 | |
40d4dc3e | 647 | How can I write() into a string? |
65acb1b1 | 648 | |
40d4dc3e | 649 | =item * |
65acb1b1 | 650 | |
40d4dc3e | 651 | How can I output my numbers with commas added? |
65acb1b1 | 652 | |
40d4dc3e | 653 | =item * |
65acb1b1 | 654 | |
40d4dc3e | 655 | How can I translate tildes (~) in a filename? |
65acb1b1 | 656 | |
40d4dc3e | 657 | =item * |
65acb1b1 | 658 | |
40d4dc3e | 659 | How come when I open a file read-write it wipes it out? |
65acb1b1 | 660 | |
40d4dc3e | 661 | =item * |
65acb1b1 | 662 | |
40d4dc3e | 663 | Why do I sometimes get an "Argument list too long" when I use <*>? |
65acb1b1 | 664 | |
40d4dc3e | 665 | =item * |
65acb1b1 | 666 | |
40d4dc3e | 667 | Is there a leak/bug in glob()? |
65acb1b1 | 668 | |
40d4dc3e | 669 | =item * |
65acb1b1 | 670 | |
40d4dc3e | 671 | How can I open a file with a leading ">" or trailing blanks? |
65acb1b1 | 672 | |
40d4dc3e | 673 | =item * |
65acb1b1 | 674 | |
40d4dc3e | 675 | How can I reliably rename a file? |
65acb1b1 | 676 | |
40d4dc3e | 677 | =item * |
65acb1b1 | 678 | |
40d4dc3e | 679 | How can I lock a file? |
d92eb7b0 | 680 | |
40d4dc3e | 681 | =item * |
65acb1b1 | 682 | |
40d4dc3e | 683 | Why can't I just open(FH, ">file.lock")? |
65acb1b1 | 684 | |
40d4dc3e | 685 | =item * |
65acb1b1 | 686 | |
40d4dc3e | 687 | I still don't get locking. I just want to increment the number in the file. How can I do this? |
65acb1b1 | 688 | |
40d4dc3e | 689 | =item * |
65acb1b1 | 690 | |
f52f3be2 | 691 | All I want to do is append a small amount of text to the end of a file. Do I still have to use locking? |
05caf3a7 GJ |
692 | |
693 | =item * | |
694 | ||
40d4dc3e | 695 | How do I randomly update a binary file? |
65acb1b1 | 696 | |
40d4dc3e | 697 | =item * |
65acb1b1 | 698 | |
40d4dc3e | 699 | How do I get a file's timestamp in perl? |
65acb1b1 | 700 | |
40d4dc3e | 701 | =item * |
65acb1b1 | 702 | |
40d4dc3e | 703 | How do I set a file's timestamp in perl? |
65acb1b1 | 704 | |
40d4dc3e RB |
705 | =item * |
706 | ||
707 | How do I print to more than one file at once? | |
708 | ||
709 | =item * | |
710 | ||
711 | How can I read in an entire file all at once? | |
712 | ||
713 | =item * | |
714 | ||
715 | How can I read in a file by paragraphs? | |
716 | ||
717 | =item * | |
718 | ||
719 | How can I read a single character from a file? From the keyboard? | |
720 | ||
721 | =item * | |
722 | ||
723 | How can I tell whether there's a character waiting on a filehandle? | |
724 | ||
725 | =item * | |
726 | ||
727 | How do I do a C<tail -f> in perl? | |
728 | ||
729 | =item * | |
730 | ||
731 | How do I dup() a filehandle in Perl? | |
732 | ||
733 | =item * | |
734 | ||
735 | How do I close a file descriptor by number? | |
736 | ||
737 | =item * | |
738 | ||
739 | Why can't I use "C:\temp\foo" in DOS paths? What doesn't `C:\temp\foo.exe` work? | |
740 | ||
741 | =item * | |
742 | ||
743 | Why doesn't glob("*.*") get all the files? | |
744 | ||
745 | =item * | |
746 | ||
747 | Why does Perl let me delete read-only files? Why does C<-i> clobber protected files? Isn't this a bug in Perl? | |
748 | ||
749 | =item * | |
750 | ||
751 | How do I select a random line from a file? | |
752 | ||
753 | =item * | |
754 | ||
755 | Why do I get weird spaces when I print an array of lines? | |
65acb1b1 TC |
756 | |
757 | =back | |
758 | ||
759 | ||
40d4dc3e | 760 | =head2 L<perlfaq6>: Regexps |
68dc0745 | 761 | |
762 | Pattern matching and regular expressions. | |
763 | ||
65acb1b1 TC |
764 | =over 4 |
765 | ||
40d4dc3e RB |
766 | =item * |
767 | ||
768 | How can I hope to use regular expressions without creating illegible and unmaintainable code? | |
769 | ||
770 | =item * | |
771 | ||
772 | I'm having trouble matching over more than one line. What's wrong? | |
773 | ||
774 | =item * | |
775 | ||
776 | How can I pull out lines between two patterns that are themselves on different lines? | |
777 | ||
778 | =item * | |
779 | ||
780 | I put a regular expression into $/ but it didn't work. What's wrong? | |
781 | ||
782 | =item * | |
783 | ||
784 | How do I substitute case insensitively on the LHS while preserving case on the RHS? | |
785 | ||
786 | =item * | |
787 | ||
788 | How can I make C<\w> match national character sets? | |
789 | ||
790 | =item * | |
791 | ||
792 | How can I match a locale-smart version of C</[a-zA-Z]/>? | |
65acb1b1 | 793 | |
40d4dc3e | 794 | =item * |
65acb1b1 | 795 | |
40d4dc3e | 796 | How can I quote a variable to use in a regex? |
65acb1b1 | 797 | |
40d4dc3e | 798 | =item * |
65acb1b1 | 799 | |
40d4dc3e | 800 | What is C</o> really for? |
65acb1b1 | 801 | |
40d4dc3e | 802 | =item * |
65acb1b1 | 803 | |
40d4dc3e | 804 | How do I use a regular expression to strip C style comments from a file? |
65acb1b1 | 805 | |
40d4dc3e | 806 | =item * |
65acb1b1 | 807 | |
40d4dc3e | 808 | Can I use Perl regular expressions to match balanced text? |
65acb1b1 | 809 | |
40d4dc3e | 810 | =item * |
65acb1b1 | 811 | |
40d4dc3e | 812 | What does it mean that regexes are greedy? How can I get around it? |
65acb1b1 | 813 | |
40d4dc3e | 814 | =item * |
65acb1b1 | 815 | |
40d4dc3e | 816 | How do I process each word on each line? |
65acb1b1 | 817 | |
40d4dc3e | 818 | =item * |
65acb1b1 | 819 | |
40d4dc3e | 820 | How can I print out a word-frequency or line-frequency summary? |
65acb1b1 | 821 | |
40d4dc3e | 822 | =item * |
65acb1b1 | 823 | |
40d4dc3e | 824 | How can I do approximate matching? |
65acb1b1 | 825 | |
40d4dc3e | 826 | =item * |
65acb1b1 | 827 | |
40d4dc3e | 828 | How do I efficiently match many regular expressions at once? |
65acb1b1 | 829 | |
40d4dc3e | 830 | =item * |
65acb1b1 | 831 | |
40d4dc3e | 832 | Why don't word-boundary searches with C<\b> work for me? |
65acb1b1 | 833 | |
40d4dc3e | 834 | =item * |
65acb1b1 | 835 | |
40d4dc3e RB |
836 | Why does using $&, $`, or $' slow my program down? |
837 | ||
838 | =item * | |
839 | ||
840 | What good is C<\G> in a regular expression? | |
841 | ||
842 | =item * | |
843 | ||
844 | Are Perl regexes DFAs or NFAs? Are they POSIX compliant? | |
845 | ||
846 | =item * | |
847 | ||
848 | What's wrong with using grep or map in a void context? | |
849 | ||
850 | =item * | |
851 | ||
852 | How can I match strings with multibyte characters? | |
853 | ||
854 | =item * | |
855 | ||
856 | How do I match a pattern that is supplied by the user? | |
65acb1b1 TC |
857 | |
858 | =back | |
859 | ||
860 | ||
40d4dc3e | 861 | =head2 L<perlfaq7>: General Perl Language Issues |
68dc0745 | 862 | |
863 | General Perl language issues that don't clearly fit into any of the | |
864 | other sections. | |
865 | ||
65acb1b1 TC |
866 | =over 4 |
867 | ||
40d4dc3e RB |
868 | =item * |
869 | ||
870 | Can I get a BNF/yacc/RE for the Perl language? | |
871 | ||
872 | =item * | |
873 | ||
874 | What are all these $@%&* punctuation signs, and how do I know when to use them? | |
875 | ||
876 | =item * | |
877 | ||
878 | Do I always/never have to quote my strings or use semicolons and commas? | |
879 | ||
880 | =item * | |
881 | ||
882 | How do I skip some return values? | |
883 | ||
884 | =item * | |
885 | ||
886 | How do I temporarily block warnings? | |
887 | ||
888 | =item * | |
889 | ||
890 | What's an extension? | |
891 | ||
892 | =item * | |
893 | ||
894 | Why do Perl operators have different precedence than C operators? | |
895 | ||
896 | =item * | |
897 | ||
898 | How do I declare/create a structure? | |
899 | ||
900 | =item * | |
901 | ||
902 | How do I create a module? | |
903 | ||
904 | =item * | |
905 | ||
906 | How do I create a class? | |
907 | ||
908 | =item * | |
909 | ||
910 | How can I tell if a variable is tainted? | |
911 | ||
912 | =item * | |
913 | ||
914 | What's a closure? | |
915 | ||
916 | =item * | |
917 | ||
918 | What is variable suicide and how can I prevent it? | |
919 | ||
920 | =item * | |
921 | ||
922 | How can I pass/return a {Function, FileHandle, Array, Hash, Method, Regex}? | |
65acb1b1 | 923 | |
40d4dc3e | 924 | =item * |
65acb1b1 | 925 | |
40d4dc3e | 926 | How do I create a static variable? |
65acb1b1 | 927 | |
40d4dc3e | 928 | =item * |
65acb1b1 | 929 | |
40d4dc3e | 930 | What's the difference between dynamic and lexical (static) scoping? Between local() and my()? |
65acb1b1 | 931 | |
40d4dc3e | 932 | =item * |
65acb1b1 | 933 | |
40d4dc3e | 934 | How can I access a dynamic variable while a similarly named lexical is in scope? |
65acb1b1 | 935 | |
40d4dc3e | 936 | =item * |
65acb1b1 | 937 | |
40d4dc3e | 938 | What's the difference between deep and shallow binding? |
65acb1b1 | 939 | |
40d4dc3e | 940 | =item * |
65acb1b1 | 941 | |
40d4dc3e | 942 | Why doesn't "my($foo) = <FILE>;" work right? |
65acb1b1 | 943 | |
40d4dc3e | 944 | =item * |
65acb1b1 | 945 | |
40d4dc3e | 946 | How do I redefine a builtin function, operator, or method? |
65acb1b1 | 947 | |
40d4dc3e | 948 | =item * |
65acb1b1 | 949 | |
40d4dc3e | 950 | What's the difference between calling a function as &foo and foo()? |
65acb1b1 | 951 | |
40d4dc3e | 952 | =item * |
65acb1b1 | 953 | |
40d4dc3e | 954 | How do I create a switch or case statement? |
65acb1b1 | 955 | |
40d4dc3e | 956 | =item * |
65acb1b1 | 957 | |
40d4dc3e | 958 | How can I catch accesses to undefined variables/functions/methods? |
65acb1b1 | 959 | |
40d4dc3e | 960 | =item * |
65acb1b1 | 961 | |
40d4dc3e | 962 | Why can't a method included in this same file be found? |
65acb1b1 | 963 | |
40d4dc3e | 964 | =item * |
65acb1b1 | 965 | |
40d4dc3e | 966 | How can I find out my current package? |
65acb1b1 | 967 | |
40d4dc3e | 968 | =item * |
65acb1b1 | 969 | |
40d4dc3e | 970 | How can I comment out a large block of perl code? |
65acb1b1 | 971 | |
40d4dc3e | 972 | =item * |
65acb1b1 | 973 | |
40d4dc3e | 974 | How do I clear a package? |
65acb1b1 | 975 | |
40d4dc3e RB |
976 | =item * |
977 | ||
978 | How can I use a variable as a variable name? | |
d92eb7b0 | 979 | |
65acb1b1 TC |
980 | =back |
981 | ||
982 | ||
40d4dc3e | 983 | =head2 L<perlfaq8>: System Interaction |
68dc0745 | 984 | |
985 | Interprocess communication (IPC), control over the user-interface | |
986 | (keyboard, screen and pointing devices). | |
987 | ||
65acb1b1 TC |
988 | =over 4 |
989 | ||
40d4dc3e RB |
990 | =item * |
991 | ||
992 | How do I find out which operating system I'm running under? | |
993 | ||
994 | =item * | |
995 | ||
996 | How come exec() doesn't return? | |
997 | ||
998 | =item * | |
999 | ||
1000 | How do I do fancy stuff with the keyboard/screen/mouse? | |
1001 | ||
1002 | =item * | |
1003 | ||
1004 | How do I print something out in color? | |
1005 | ||
1006 | =item * | |
1007 | ||
1008 | How do I read just one key without waiting for a return key? | |
1009 | ||
1010 | =item * | |
1011 | ||
1012 | How do I check whether input is ready on the keyboard? | |
1013 | ||
1014 | =item * | |
1015 | ||
1016 | How do I clear the screen? | |
1017 | ||
1018 | =item * | |
1019 | ||
1020 | How do I get the screen size? | |
1021 | ||
1022 | =item * | |
1023 | ||
1024 | How do I ask the user for a password? | |
1025 | ||
1026 | =item * | |
1027 | ||
1028 | How do I read and write the serial port? | |
1029 | ||
1030 | =item * | |
1031 | ||
1032 | How do I decode encrypted password files? | |
1033 | ||
1034 | =item * | |
1035 | ||
1036 | How do I start a process in the background? | |
1037 | ||
1038 | =item * | |
1039 | ||
1040 | How do I trap control characters/signals? | |
1041 | ||
1042 | =item * | |
1043 | ||
1044 | How do I modify the shadow password file on a Unix system? | |
1045 | ||
1046 | =item * | |
1047 | ||
1048 | How do I set the time and date? | |
1049 | ||
1050 | =item * | |
1051 | ||
1052 | How can I sleep() or alarm() for under a second? | |
1053 | ||
1054 | =item * | |
1055 | ||
1056 | How can I measure time under a second? | |
1057 | ||
1058 | =item * | |
1059 | ||
1060 | How can I do an atexit() or setjmp()/longjmp()? (Exception handling) | |
1061 | ||
1062 | =item * | |
1063 | ||
1064 | Why doesn't my sockets program work under System V (Solaris)? What does the error message "Protocol not supported" mean? | |
65acb1b1 | 1065 | |
40d4dc3e | 1066 | =item * |
65acb1b1 | 1067 | |
40d4dc3e | 1068 | How can I call my system's unique C functions from Perl? |
65acb1b1 | 1069 | |
40d4dc3e | 1070 | =item * |
65acb1b1 | 1071 | |
40d4dc3e | 1072 | Where do I get the include files to do ioctl() or syscall()? |
65acb1b1 | 1073 | |
40d4dc3e | 1074 | =item * |
65acb1b1 | 1075 | |
40d4dc3e | 1076 | Why do setuid perl scripts complain about kernel problems? |
65acb1b1 | 1077 | |
40d4dc3e | 1078 | =item * |
65acb1b1 | 1079 | |
40d4dc3e | 1080 | How can I open a pipe both to and from a command? |
65acb1b1 | 1081 | |
40d4dc3e | 1082 | =item * |
65acb1b1 | 1083 | |
40d4dc3e | 1084 | Why can't I get the output of a command with system()? |
65acb1b1 | 1085 | |
40d4dc3e | 1086 | =item * |
65acb1b1 | 1087 | |
40d4dc3e | 1088 | How can I capture STDERR from an external command? |
65acb1b1 | 1089 | |
40d4dc3e | 1090 | =item * |
65acb1b1 | 1091 | |
40d4dc3e | 1092 | Why doesn't open() return an error when a pipe open fails? |
65acb1b1 | 1093 | |
40d4dc3e | 1094 | =item * |
65acb1b1 | 1095 | |
40d4dc3e | 1096 | What's wrong with using backticks in a void context? |
65acb1b1 | 1097 | |
40d4dc3e | 1098 | =item * |
65acb1b1 | 1099 | |
40d4dc3e | 1100 | How can I call backticks without shell processing? |
65acb1b1 | 1101 | |
40d4dc3e | 1102 | =item * |
65acb1b1 | 1103 | |
40d4dc3e | 1104 | Why can't my script read from STDIN after I gave it EOF (^D on Unix, ^Z on MS-DOS)? |
65acb1b1 | 1105 | |
40d4dc3e | 1106 | =item * |
65acb1b1 | 1107 | |
40d4dc3e | 1108 | How can I convert my shell script to perl? |
65acb1b1 | 1109 | |
40d4dc3e | 1110 | =item * |
65acb1b1 | 1111 | |
40d4dc3e | 1112 | Can I use perl to run a telnet or ftp session? |
65acb1b1 | 1113 | |
40d4dc3e | 1114 | =item * |
65acb1b1 | 1115 | |
40d4dc3e | 1116 | How can I write expect in Perl? |
65acb1b1 | 1117 | |
40d4dc3e | 1118 | =item * |
65acb1b1 | 1119 | |
40d4dc3e | 1120 | Is there a way to hide perl's command line from programs such as "ps"? |
65acb1b1 | 1121 | |
40d4dc3e | 1122 | =item * |
65acb1b1 | 1123 | |
40d4dc3e | 1124 | I {changed directory, modified my environment} in a perl script. How come the change disappeared when I exited the script? How do I get my changes to be visible? |
65acb1b1 | 1125 | |
40d4dc3e | 1126 | =item * |
65acb1b1 | 1127 | |
40d4dc3e | 1128 | How do I close a process's filehandle without waiting for it to complete? |
65acb1b1 | 1129 | |
40d4dc3e | 1130 | =item * |
65acb1b1 | 1131 | |
40d4dc3e | 1132 | How do I fork a daemon process? |
65acb1b1 | 1133 | |
40d4dc3e | 1134 | =item * |
65acb1b1 | 1135 | |
40d4dc3e | 1136 | How do I find out if I'm running interactively or not? |
65acb1b1 | 1137 | |
40d4dc3e | 1138 | =item * |
65acb1b1 | 1139 | |
40d4dc3e | 1140 | How do I timeout a slow event? |
65acb1b1 | 1141 | |
40d4dc3e | 1142 | =item * |
65acb1b1 | 1143 | |
40d4dc3e | 1144 | How do I set CPU limits? |
65acb1b1 | 1145 | |
40d4dc3e | 1146 | =item * |
65acb1b1 | 1147 | |
40d4dc3e | 1148 | How do I avoid zombies on a Unix system? |
65acb1b1 | 1149 | |
40d4dc3e | 1150 | =item * |
65acb1b1 | 1151 | |
40d4dc3e | 1152 | How do I use an SQL database? |
65acb1b1 | 1153 | |
40d4dc3e | 1154 | =item * |
65acb1b1 | 1155 | |
40d4dc3e | 1156 | How do I make a system() exit on control-C? |
65acb1b1 | 1157 | |
40d4dc3e | 1158 | =item * |
65acb1b1 | 1159 | |
40d4dc3e RB |
1160 | How do I open a file without blocking? |
1161 | ||
1162 | =item * | |
1163 | ||
1164 | How do I install a module from CPAN? | |
1165 | ||
1166 | =item * | |
1167 | ||
1168 | What's the difference between require and use? | |
1169 | ||
1170 | =item * | |
1171 | ||
1172 | How do I keep my own module/library directory? | |
1173 | ||
1174 | =item * | |
1175 | ||
1176 | How do I add the directory my program lives in to the module/library search path? | |
1177 | ||
1178 | =item * | |
1179 | ||
1180 | How do I add a directory to my include path at runtime? | |
1181 | ||
1182 | =item * | |
1183 | ||
1184 | What is socket.ph and where do I get it? | |
65acb1b1 TC |
1185 | |
1186 | =back | |
1187 | ||
1188 | ||
40d4dc3e | 1189 | =head2 L<perlfaq9>: Networking |
68dc0745 | 1190 | |
1191 | Networking, the Internet, and a few on the web. | |
1192 | ||
65acb1b1 TC |
1193 | =over 4 |
1194 | ||
40d4dc3e | 1195 | =item * |
65acb1b1 | 1196 | |
40d4dc3e | 1197 | My CGI script runs from the command line but not the browser. (500 Server Error) |
65acb1b1 | 1198 | |
40d4dc3e | 1199 | =item * |
65acb1b1 | 1200 | |
40d4dc3e | 1201 | How can I get better error messages from a CGI program? |
65acb1b1 | 1202 | |
40d4dc3e | 1203 | =item * |
65acb1b1 | 1204 | |
40d4dc3e | 1205 | How do I remove HTML from a string? |
65acb1b1 | 1206 | |
40d4dc3e | 1207 | =item * |
65acb1b1 | 1208 | |
40d4dc3e | 1209 | How do I extract URLs? |
65acb1b1 | 1210 | |
40d4dc3e | 1211 | =item * |
65acb1b1 | 1212 | |
40d4dc3e | 1213 | How do I download a file from the user's machine? How do I open a file on another machine? |
65acb1b1 | 1214 | |
40d4dc3e | 1215 | =item * |
65acb1b1 | 1216 | |
40d4dc3e | 1217 | How do I make a pop-up menu in HTML? |
65acb1b1 | 1218 | |
40d4dc3e | 1219 | =item * |
65acb1b1 | 1220 | |
40d4dc3e | 1221 | How do I fetch an HTML file? |
65acb1b1 | 1222 | |
40d4dc3e | 1223 | =item * |
65acb1b1 | 1224 | |
40d4dc3e | 1225 | How do I automate an HTML form submission? |
65acb1b1 | 1226 | |
40d4dc3e | 1227 | =item * |
65acb1b1 | 1228 | |
40d4dc3e | 1229 | How do I decode or create those %-encodings on the web? |
65acb1b1 | 1230 | |
40d4dc3e | 1231 | =item * |
65acb1b1 | 1232 | |
40d4dc3e | 1233 | How do I redirect to another page? |
65acb1b1 | 1234 | |
40d4dc3e | 1235 | =item * |
65acb1b1 | 1236 | |
40d4dc3e | 1237 | How do I put a password on my web pages? |
65acb1b1 | 1238 | |
40d4dc3e | 1239 | =item * |
65acb1b1 | 1240 | |
40d4dc3e | 1241 | How do I edit my .htpasswd and .htgroup files with Perl? |
65acb1b1 | 1242 | |
40d4dc3e RB |
1243 | =item * |
1244 | ||
1245 | How do I make sure users can't enter values into a form that cause my CGI script to do bad things? | |
1246 | ||
1247 | =item * | |
1248 | ||
1249 | How do I parse a mail header? | |
1250 | ||
1251 | =item * | |
1252 | ||
1253 | How do I decode a CGI form? | |
1254 | ||
1255 | =item * | |
65acb1b1 | 1256 | |
40d4dc3e RB |
1257 | How do I check a valid mail address? |
1258 | ||
1259 | =item * | |
1260 | ||
1261 | How do I decode a MIME/BASE64 string? | |
1262 | ||
1263 | =item * | |
1264 | ||
1265 | How do I return the user's mail address? | |
1266 | ||
1267 | =item * | |
1268 | ||
1269 | How do I send mail? | |
1270 | ||
1271 | =item * | |
1272 | ||
1273 | How do I read mail? | |
1274 | ||
1275 | =item * | |
1276 | ||
1277 | How do I find out my hostname/domainname/IP address? | |
1278 | ||
1279 | =item * | |
1280 | ||
1281 | How do I fetch a news article or the active newsgroups? | |
1282 | ||
1283 | =item * | |
1284 | ||
1285 | How do I fetch/put an FTP file? | |
1286 | ||
1287 | =item * | |
1288 | ||
1289 | How can I do RPC in Perl? | |
65acb1b1 | 1290 | |
68dc0745 | 1291 | =back |
1292 | ||
40d4dc3e RB |
1293 | |
1294 | =head1 About the perlfaq documents | |
1295 | ||
1296 | =head2 Where to get the perlfaq | |
68dc0745 | 1297 | |
1298 | This document is posted regularly to comp.lang.perl.announce and | |
06a5f41f JH |
1299 | several other related newsgroups. It is available on many |
1300 | web sites: http://www.perldoc.com/ and http://perlfaq.cpan.org/ . | |
68dc0745 | 1301 | |
40d4dc3e | 1302 | =head2 How to contribute to the perlfaq |
68dc0745 | 1303 | |
1304 | You may mail corrections, additions, and suggestions to | |
06a5f41f | 1305 | perlfaq-workers@perl.org . This alias should not be |
c8db1d39 | 1306 | used to I<ask> FAQs. It's for fixing the current FAQ. |
65acb1b1 | 1307 | Send questions to the comp.lang.perl.misc newsgroup. |
68dc0745 | 1308 | |
1309 | =head2 What will happen if you mail your Perl programming problems to the authors | |
1310 | ||
1311 | Your questions will probably go unread, unless they're suggestions of | |
1312 | new questions to add to the FAQ, in which case they should have gone | |
06a5f41f | 1313 | to the perlfaq-workers@perl.org instead. |
68dc0745 | 1314 | |
1315 | You should have read section 2 of this faq. There you would have | |
1316 | learned that comp.lang.perl.misc is the appropriate place to go for | |
1317 | free advice. If your question is really important and you require a | |
1318 | prompt and correct answer, you should hire a consultant. | |
1319 | ||
1320 | =head1 Credits | |
1321 | ||
1322 | When I first began the Perl FAQ in the late 80s, I never realized it | |
1323 | would have grown to over a hundred pages, nor that Perl would ever become | |
1324 | so popular and widespread. This document could not have been written | |
1325 | without the tremendous help provided by Larry Wall and the rest of the | |
1326 | Perl Porters. | |
1327 | ||
1328 | =head1 Author and Copyright Information | |
1329 | ||
0bc0ad85 | 1330 | Copyright (c) 1997-2002 Tom Christiansen and Nathan Torkington. |
68dc0745 | 1331 | All rights reserved. |
1332 | ||
c8db1d39 | 1333 | =head2 Bundled Distributions |
68dc0745 | 1334 | |
5a7beb56 JH |
1335 | This documentation is free; you can redistribute it and/or modify it |
1336 | under the same terms as Perl itself. | |
68dc0745 | 1337 | |
c8db1d39 TC |
1338 | Irrespective of its distribution, all code examples in these files |
1339 | are hereby placed into the public domain. You are permitted and | |
1340 | encouraged to use this code in your own programs for fun | |
1341 | or for profit as you see fit. A simple comment in the code giving | |
1342 | credit would be courteous but is not required. | |
68dc0745 | 1343 | |
1344 | =head2 Disclaimer | |
1345 | ||
1346 | This information is offered in good faith and in the hope that it may | |
1347 | be of use, but is not guaranteed to be correct, up to date, or suitable | |
1348 | for any particular purpose whatsoever. The authors accept no liability | |
1349 | in respect of this information or its use. | |
1350 | ||
1351 | =head1 Changes | |
1352 | ||
1353 | =over 4 | |
1354 | ||
a6dd486b JB |
1355 | =item 1/November/2000 |
1356 | ||
1357 | A few grammatical fixes and updates implemented by John Borwick. | |
1358 | ||
d92eb7b0 GS |
1359 | =item 23/May/99 |
1360 | ||
87275199 | 1361 | Extensive updates from the net in preparation for 5.6 release. |
d92eb7b0 GS |
1362 | |
1363 | =item 13/April/99 | |
1364 | ||
1365 | More minor touch-ups. Added new question at the end | |
1366 | of perlfaq7 on variable names within variables. | |
1367 | ||
65acb1b1 TC |
1368 | =item 7/January/99 |
1369 | ||
8305e449 | 1370 | Small touch ups here and there. Added all questions in this |
65acb1b1 TC |
1371 | document as a sort of table of contents. |
1372 | ||
707102d0 | 1373 | =item 22/June/98 |
c8db1d39 TC |
1374 | |
1375 | Significant changes throughout in preparation for the 5.005 | |
1376 | release. | |
1377 | ||
fc36a67e | 1378 | =item 24/April/97 |
1379 | ||
1380 | Style and whitespace changes from Chip, new question on reading one | |
1381 | character at a time from a terminal using POSIX from Tom. | |
1382 | ||
46fc3d4c | 1383 | =item 23/April/97 |
1384 | ||
1385 | Added http://www.oasis.leo.org/perl/ to L<perlfaq2>. Style fix to | |
1386 | L<perlfaq3>. Added floating point precision, fixed complex number | |
1387 | arithmetic, cross-references, caveat for Text::Wrap, alternative | |
1388 | answer for initial capitalizing, fixed incorrect regexp, added example | |
1389 | of Tie::IxHash to L<perlfaq4>. Added example of passing and storing | |
1390 | filehandles, added commify to L<perlfaq5>. Restored variable suicide, | |
1391 | and added mass commenting to L<perlfaq7>. Added Net::Telnet, fixed | |
1392 | backticks, added reader/writer pair to telnet question, added FindBin, | |
1393 | grouped module questions together in L<perlfaq8>. Expanded caveats | |
1394 | for the simple URL extractor, gave LWP example, added CGI security | |
5a964f20 | 1395 | question, expanded on the mail address answer in L<perlfaq9>. |
46fc3d4c | 1396 | |
3fe9a6f1 | 1397 | =item 25/March/97 |
1398 | ||
1399 | Added more info to the binary distribution section of L<perlfaq2>. | |
1400 | Added Net::Telnet to L<perlfaq6>. Fixed typos in L<perlfaq8>. Added | |
1401 | mail sending example to L<perlfaq9>. Added Merlyn's columns to | |
1402 | L<perlfaq2>. | |
1403 | ||
46fc3d4c | 1404 | =item 18/March/97 |
3fe9a6f1 | 1405 | |
1406 | Added the DATE to the NAME section, indicating which sections have | |
1407 | changed. | |
1408 | ||
1409 | Mentioned SIGPIPE and L<perlipc> in the forking open answer in | |
1410 | L<perlfaq8>. | |
1411 | ||
1412 | Fixed description of a regular expression in L<perlfaq4>. | |
1413 | ||
68dc0745 | 1414 | =item 17/March/97 Version |
1415 | ||
1416 | Various typos fixed throughout. | |
1417 | ||
1418 | Added new question on Perl BNF on L<perlfaq7>. | |
1419 | ||
1420 | =item Initial Release: 11/March/97 | |
1421 | ||
1422 | This is the initial release of version 3 of the FAQ; consequently there | |
1423 | have been no changes since its initial release. | |
1424 | ||
1425 | =back |