NAME

Carp::Datum::Strip - strips most Carp::Datum calls lexically

SYNOPSIS

use Carp::Datum::Strip qw(datum_strip);

datum_strip("-", "-");
datum_strip($file, "$file.new", ".bak");

DESCRIPTION

This module exports a single routine, datum_strip(), whose purpose is to remove calls to Carp::Datum routines lexically.

Because stripping is done lexically, there are some restrictions about what is actually supported. Unless the conventions documented in Carp::Datum are followed, stripping will be incorrect.

The general guidelines are:

  • Do not use here documents or generalized quotes (qq) within your assertion expression or tags. Write your assertions using '' or "", as appropriate.

  • Assertions can be safely put on several lines, but must end with a semi-colon, outside any string.

There are two calls that will never be stripped: VERIFY() and DTRACE(). The VERIFY() is meant to be preserved (or you would have used DREQUIRE), and DTRACE, when called, will be remapped dynamically to some Log::Agent routine, depending on the trace level. See Carp::Datum for details.

INTERFACE

The interface of the datum_strip() routine is:

datum_strip old_file, new_file, [ext]

The old_file specifies the old file path, the one to be stripped. The stripped version will be written to new_file.

If the optional third argument ext is given (e.g. ".bak"), then old_file will be renamed with the supplied extension, and new_file will be renamed old_file. Renaming only occurs if stripping was successful (i.e. the new file was correctly written to disk).

The lowest nine "rwx" mode bits from old_file are preserved when creating new_file.

Both old_file and new_file can be set to "-", in which case STDIN and STDOUT are used, respectively, and no renaming can occur, nor any mode bit propagation.

Returns true on success, undef on error.

AUTHORS

Christophe Dehaudt <christophe@dehaudt.org> and Raphael Manfredi <Raphael_Manfredi@pobox.com>.

SEE ALSO

Carp::Datum(3).