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