You are viewing the version of this documentation from Perl 5.8.0. View the latest version



perlfaq - frequently asked questions about Perl ($Date: 2002/03/11 21:32:23 $)


The perlfaq is structured into the following documents:

perlfaq: Structural overview of the FAQ.

This document.

perlfaq1: General Questions About Perl

Very general, high-level questions about Perl.

perlfaq2: Obtaining and Learning about Perl

Where to find source and documentation for Perl, support, and related matters.

perlfaq3: Programming Tools

Programmer tools and programming support.

perlfaq4: Data Manipulation

Manipulating numbers, dates, strings, arrays, hashes, and miscellaneous data issues.

perlfaq5: Files and Formats

I/O and the "f" issues: filehandles, flushing, formats, and footers.

perlfaq6: Regular Expressions

Pattern matching and regular expressions.

perlfaq7: General Perl Language Issues

General Perl language issues that don't clearly fit into any of the other sections.

perlfaq8: System Interaction

Interprocess communication (IPC), control over the user-interface (keyboard, screen and pointing devices).

perlfaq9: Networking

Networking, the internet, and a few on the web.

About the perlfaq documents

Where to get the perlfaq

This document is posted regularly to comp.lang.perl.announce and several other related newsgroups. It is available on many web sites: and .

How to contribute to the perlfaq

You may mail corrections, additions, and suggestions to . This alias should not be used to ask FAQs. It's for fixing the current FAQ. Send questions to the comp.lang.perl.misc newsgroup.

What will happen if you mail your Perl programming problems to the authors

Your questions will probably go unread, unless they're suggestions of new questions to add to the FAQ, in which case they should have gone to the instead.

You should have read section 2 of this faq. There you would have learned that comp.lang.perl.misc is the appropriate place to go for free advice. If your question is really important and you require a prompt and correct answer, you should hire a consultant.


When I first began the Perl FAQ in the late 80s, I never realized it would have grown to over a hundred pages, nor that Perl would ever become so popular and widespread. This document could not have been written without the tremendous help provided by Larry Wall and the rest of the Perl Porters.

Author and Copyright Information

Copyright (c) 1997-2002 Tom Christiansen and Nathan Torkington. All rights reserved.

Bundled Distributions

This documentation is free; you can redistribute it and/or modify it under the same terms as Perl itself.

Irrespective of its distribution, all code examples in these files are hereby placed into the public domain. You are permitted and encouraged to use this code in your own programs for fun or for profit as you see fit. A simple comment in the code giving credit would be courteous but is not required.


This information is offered in good faith and in the hope that it may be of use, but is not guaranteed to be correct, up to date, or suitable for any particular purpose whatsoever. The authors accept no liability in respect of this information or its use.



A few grammatical fixes and updates implemented by John Borwick.


Extensive updates from the net in preparation for 5.6 release.


More minor touch-ups. Added new question at the end of perlfaq7 on variable names within variables.


Small touch ups here and there. Added all questions in this document as a sort of table of contents.


Significant changes throughout in preparation for the 5.005 release.


Style and whitespace changes from Chip, new question on reading one character at a time from a terminal using POSIX from Tom.


Added to perlfaq2. Style fix to perlfaq3. Added floating point precision, fixed complex number arithmetic, cross-references, caveat for Text::Wrap, alternative answer for initial capitalizing, fixed incorrect regexp, added example of Tie::IxHash to perlfaq4. Added example of passing and storing filehandles, added commify to perlfaq5. Restored variable suicide, and added mass commenting to perlfaq7. Added Net::Telnet, fixed backticks, added reader/writer pair to telnet question, added FindBin, grouped module questions together in perlfaq8. Expanded caveats for the simple URL extractor, gave LWP example, added CGI security question, expanded on the mail address answer in perlfaq9.


Added more info to the binary distribution section of perlfaq2. Added Net::Telnet to perlfaq6. Fixed typos in perlfaq8. Added mail sending example to perlfaq9. Added Merlyn's columns to perlfaq2.


Added the DATE to the NAME section, indicating which sections have changed.

Mentioned SIGPIPE and perlipc in the forking open answer in perlfaq8.

Fixed description of a regular expression in perlfaq4.

17/March/97 Version

Various typos fixed throughout.

Added new question on Perl BNF on perlfaq7.

Initial Release: 11/March/97

This is the initial release of version 3 of the FAQ; consequently there have been no changes since its initial release.