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



perlfaq - frequently asked questions about Perl ($Date: 2005/03/27 07:21:21 $)


The perlfaq is divided into several documents based on topics. A table of contents is at the end of this document.

Where to get the perlfaq

Extracts of the perlfaq are posted regularly to comp.lang.perl.misc. 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. You can view the source tree at (which is outside of the main Perl source tree). The CVS repository notes all changes to the FAQ.

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.


The original perlfaq was written by Tom Christiansen, then expanded by collaboration between Tom and Nathan Torkington. The current document is maintained by the perlfaq-workers ( Several people have contributed answers, corrections, and comments.

Author and Copyright Information

Copyright (c) 1997-2003 Tom Christiansen, Nathan Torkington, and other contributors noted in the answers.

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.

Table of Contents

perlfaq - this document
perlfaq1 - General Questions About Perl
perlfaq2 - Obtaining and Learning about Perl
perlfaq3 - Programming Tools
perlfaq4 - Data Manipulation
perlfaq5 - Files and Formats
perlfaq6 - Regular Expressions
perlfaq7 - General Perl Language Issues
perlfaq8 - System Interaction
perlfaq9 - Networking

The Questions

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

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 perlfaq9: ``How do I decode or create those %-encodings on the web'' and perlfaq4: ``How do I determine whether a scalar is a number/whole/integer/float'', to be precise).

perlfaq7: General Perl Language Issues

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

perlfaq8: System Interaction

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, perlvms, perlplan9, ...). These should contain more detailed information on the vagaries of your perl.

perlfaq9: Networking

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