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