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



perlfaq - Frequently asked questions about Perl


version 5.20240218


The perlfaq comprises several documents that answer the most commonly asked questions about Perl and Perl programming. It's divided by topic into nine major sections outlined in this document.

Where to find the perlfaq

The perlfaq is an evolving document. Read the latest version at It is also included in the standard Perl distribution.

How to use the perlfaq

The perldoc command line tool is part of the standard Perl distribution. To read the perlfaq:

$ perldoc perlfaq

To search the perlfaq question headings:

$ perldoc -q open

How to contribute to the perlfaq

Review If you don't find your suggestion create an issue or pull request against

Once approved, changes will be distributed with the next Perl release and subsequently appear at

What if my question isn't answered in the FAQ?

Try the resources in perlfaq2.


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 - Web, Email and Networking


perlfaq1: General Questions About Perl

This section of the FAQ answers very general, high-level questions about Perl.

perlfaq2: Obtaining and Learning about Perl

This section of the FAQ answers questions about where to find source and documentation for Perl, support, and related matters.

perlfaq3: Programming Tools

This section of the FAQ answers questions related to programmer tools and programming support.

perlfaq4: Data Manipulation

This section of the FAQ answers questions related to manipulating numbers, dates, strings, arrays, hashes, and miscellaneous data issues.

perlfaq5: Files and Formats

This section deals with 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 can be 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

This section deals with 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.

perlfaq9: Web, Email and Networking

This section deals with questions related to running web sites, sending and receiving email as well as general networking.


Tom Christiansen wrote the original perlfaq then expanded it with the help of Nat Torkington. brian d foy substantially edited and expanded the perlfaq. perlfaq-workers and others have also supplied feedback, patches and corrections over the years.


Tom Christiansen wrote the original version of this document. brian d foy <> wrote this version. See the individual perlfaq documents for additional copyright information.

This document is available under the same terms as Perl itself. Code examples in all the perlfaq documents are in the public domain. Use them as you see fit (and at your own risk with no warranty from anyone).