NAME¶
Eval::LineNumbers - Add line numbers to heredoc blocks that contain perl source
code
SYNOPSIS¶
use Eval::LineNumbers qw(eval_line_numbes);
eval eval_line_numbers(<<END_HEREIS);
code
END_HEREIS
eval eval_line_numbers($caller_level, $code)
DESCRIPTION¶
Add a "#line "this-file" 392" comment to heredoc/hereis text
that is going to be eval'ed so that error messages will point back to the
right place.
Please note: when you embed "\n" in your code, it gets expanded in
double-quote hereis documents so it will mess up your line numbering. Use
"\\n" instead when you can.
Caller Level Example¶
The second form of eval_line_numbers where a caller-level is provided is for the
situation where the code is generated in one place and eval'ed in another
place. The caller level should be the number of stack levels between where the
heredoc was created and where it is eval'ed.
sub example {
return <<END_HEREIS
code
END_HEREIS
}
eval eval_line_numbers(1, example())
LICENSE¶
Copyright (C) 2009 David Muir Sharnoff. Copyright (C) 2013 Google, Inc.
This package may be used and redistributed under the terms of either the
Artistic 2.0 or LGPL 2.1 license.