Carp::Datum::Strip - strips most Carp::Datum calls lexically
Contents
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 assertion expression or tags. Write
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 "DREQUIRE" would have been used). "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.
Name
Carp::Datum::Strip - strips most Carp::Datum calls lexically
See Also
Carp::Datum(3). perl v5.34.0 2022-06-30 Datum::Strip(3pm)
Synopsis
use Carp::Datum::Strip qw(datum_strip);
datum_strip("-", "-");
datum_strip($file, "$file.new", ".bak");
