NAME

Pod::Eventual::Reconstruct::LazyCut - A Subclass of Pod::Eventual::Reconstruct that emits less =cut's

VERSION

version 1.000002

SYNOPSIS

If you're blindly filtering POD in an Eventual manner, sometimes removing elements may change the semantics.

For instance, in

codehere

=begin foo

=end foo

=cut

codehere

That =cut is an "End of POD Marker".

However, if you simply remove the elements before the =cut, the semantics change:

codehere

=cut

codehere

Here, =cut marks a "Start of POD" and the second codehere is deemed "in the POD".

This module attempts to keep the document "consistent" by not emitting =cut unless a preceding =command is seen in the output.

Additionally, this module will warn if elements are posted to it in ways that are likely to cause errors, for instance:

  • A POD Text element outside a POD region

  • A Non-POD element inside a POD region

The specific behavior occurred when hitting these errors can be customized via sub-classing, and overriding "write_text_outside_pod" and "write_nonpod_inside_pod"

METHODS

set_inpod

clear_inpod

is_inpod

write_text_outside_pod

Is called when a text event is seen but we don't appear to be inside a POD region.

$recon->write_text_outside_pod( $orig_method, $event );

Default implementation warns via Carp and then emits the element anyway, via

$self->$orig_method( $event )

write_nonpod_inside_pod

Is called when a nonpod event is seen but we appear to be inside a POD region.

$recon->write_nonpod_inside_pod( $orig_method, $event );

Default implementation warns via Carp and then emits the element anyway, via

$self->$orig_method( $event )

ATTRIBUTES

inpod

AUTHOR

Kent Fredric <kentnl@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2017 by Kent Fredric <kentfredric@gmail.com>.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.