The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.


Pod::Wrap - Wrap pod paragraphs, leaving verbatim text and code alone.



    use strict;
    use warnings;

    use Pod::Wrap;

    my $w = new Pod::Wrap;

    unless (@ARGV) {
        $w->parse_from_filehandle() # STDIN
    } else {
        $w->parse_from_file($_) for @ARGV;


This is a Pod::Parser subclass, based on Pod::Stripper. It parses perl files, wrapping pod text, and leaving everything else intact. It prints it's output to wherever you point it to (like you do with Pod::Parser (and Pod::Stripper)).



This is actually "new" in Pod::Parser.

All arguments to it are meaningless, as they are in Pod::Parser.


These are actually "parse_from_filehandle" in Pod::Parser and "parse_from_file" in Pod::Parser.

They will receive input and output as described therein.

They will invoke this parser class, which will filter the pod text, wrapping the appropriate sections using Text::Wrap.


I prefer editing with tabs and soft wrapping.

Most people like getting documentation hard wrapped and with tabs expanded.

The tabs are easy (Text::Tabs), but wrapping only the correct parts of the pod is a little tricker. This module attempts to do this correctly, by wrapping only what isn't a command, a verbatim example (indented text), or actual Perl code.

PodMaster noted that I should see what perltidy has to offer. Turns out that

    What perltidy does not parse and format
    And, of course, it does not modify pod documents.

This drove me to release this tiny module.


The wrapping behavior is defined entirely by Text::Wrap.

No re-exporting is made, in order to minimize bugs. If you want to import the variables Text::Wrap uses, do something like this:

    use Pod::Wrap;
    use Text::Wrap qw/$columns $huge/;




You can ask me.


Podmaster wrote Pod::Stripper. Even though the functionality of this module is very limited, and is not really derived from Pod::Stripper, I would have been too lazy to read Pod::Parser's docs without seeing Pod::Stripper's code as an example first.

Bottom line, most of the work (the research) that was actually done is not mine. Implementation wouldn't have happened if I hadn't known for sure it's possible to get perl code, verbatim, out of a pod parser. And I wouldn't have if I hadn't seen a working example.


You may not wrap pod files in any way without my explicit permission, in writing.

Just kidding.

    Copyright 2004 Yuval Kogman. All rights reserved.
    This program is free software; you can redistribute it
    and/or modify it under the same terms as Perl itself.


Yuval Kogman <>


Text::Wrap, Pod::Parser, Pod::Stripper, Perl::Tidy