Eval-LineNumbers-0.34/0000755000175000017500000000000012224555664013275 5ustar muirmuirEval-LineNumbers-0.34/Changes0000644000175000017500000000074312224555616014571 0ustar muirmuir Revision history for Perl module Eval::LineNumbers 0.34 2013/10/07 - Fix Makefile.PL NAME 0.33 2013/10/04 - Complete makeover by Olivier MenguĂ: - add caller-level support - add a test - fix typos, groom makefile and code 0.32 2013/10/01 - use 'heredoc' instead of 'hereis' - add Google copyright - rename CHANGELOG to Changes - add README - create git repository, add link 0.31 2009/09/01 - Minor documentation changes. 0.3 2009/07/24 - Initial version Eval-LineNumbers-0.34/README0000644000175000017500000000240212224555631014145 0ustar muirmuirNAME 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(<' build_requires: ExtUtils::MakeMaker: 0 configure_requires: ExtUtils::MakeMaker: 0 dynamic_config: 1 generated_by: 'ExtUtils::MakeMaker version 6.62, CPAN::Meta::Converter version 2.112150' license: unknown meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html version: 1.4 name: Eval-LineNumbers no_index: directory: - t - inc requires: Exporter: 5.57 resources: repository: http://github.com/muir/Eval-LineNumbers version: 0.34 Eval-LineNumbers-0.34/lib/0000755000175000017500000000000012224555664014043 5ustar muirmuirEval-LineNumbers-0.34/lib/Eval/0000755000175000017500000000000012224555664014732 5ustar muirmuirEval-LineNumbers-0.34/lib/Eval/LineNumbers.pm0000644000175000017500000000305712224555560017513 0ustar muirmuir package Eval::LineNumbers; use warnings; use strict; use Exporter 5.57 'import'; our @EXPORT_OK = qw(eval_line_numbers); our $VERSION = 0.34; sub eval_line_numbers { my(undef, $file, $line) = caller( # Optional first arg is the caller level $_[0] =~ /^[0-9]+$/ ? (shift) : 0 ); $line++; return join('', qq{#line $line "$file"\n}, @_) } 1; __END__ =head1 NAME Eval::LineNumbers - Add line numbers to heredoc blocks that contain perl source code =head1 SYNOPSIS use Eval::LineNumbers qw(eval_line_numbes); eval eval_line_numbers(< 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 C<\n> in your code, it gets expanded in double-quote hereis documents so it will mess up your line numbering. Use C<\\n> instead when you can. =head2 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 <" ], "dynamic_config" : 1, "generated_by" : "ExtUtils::MakeMaker version 6.62, CPAN::Meta::Converter version 2.112150", "license" : [ "unknown" ], "meta-spec" : { "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", "version" : "2" }, "name" : "Eval-LineNumbers", "no_index" : { "directory" : [ "t", "inc" ] }, "prereqs" : { "build" : { "requires" : { "ExtUtils::MakeMaker" : 0 } }, "configure" : { "requires" : { "ExtUtils::MakeMaker" : 0 } }, "runtime" : { "requires" : { "Exporter" : "5.57" } } }, "release_status" : "stable", "resources" : { "repository" : { "url" : "http://github.com/muir/Eval-LineNumbers" } }, "version" : "0.34" } Eval-LineNumbers-0.34/MANIFEST0000644000175000017500000000026112224555664014425 0ustar muirmuirChanges lib/Eval/LineNumbers.pm Makefile.PL MANIFEST MANIFEST.SKIP META.yml README t/basic.t META.json Module JSON meta-data (added by MakeMaker) Eval-LineNumbers-0.34/Makefile.PL0000644000175000017500000000131412224555501015234 0ustar muirmuiruse ExtUtils::MakeMaker; WriteMakefile( 'VERSION_FROM' => 'lib/Eval/LineNumbers.pm', 'NAME' => 'Eval::LineNumbers', 'dist' => { COMPRESS=>"gzip", SUFFIX=>"gz" }, 'PREREQ_PM' => { 'Exporter' => '5.57', # in core since 5.8.3, and also on CPAN }, ($] >= 5.005 ? ( ABSTRACT => "Add line numbers to eval'ed heredoc blocks", AUTHOR => 'David Muir Sharnoff ', META_MERGE => { resources => { repository => 'http://github.com/muir/Eval-LineNumbers', }, }, ) : () ), ); package MY; sub postamble { <<"END_OF_POSTAMBLE"; pm_to_blib: README README: lib/Eval/LineNumbers.pm \tpod2text lib/Eval/LineNumbers.pm >README END_OF_POSTAMBLE } Eval-LineNumbers-0.34/t/0000755000175000017500000000000012224555664013540 5ustar muirmuirEval-LineNumbers-0.34/t/basic.t0000644000175000017500000000107612223657721015006 0ustar muirmuiruse strict; use warnings; use Test::More tests => 4; use Eval::LineNumbers 'eval_line_numbers'; my $line_expected = __LINE__ + 3; my ($line, $file) = eval eval_line_numbers <<'EOF'; (__LINE__, __FILE__) EOF is($file, __FILE__, 'file matches'); is($line, $line_expected, 'line number matches'); sub evaluator { eval eval_line_numbers(@_) } $line_expected = __LINE__ + 3; ($line, $file) = evaluator(1, <<'EOF'); (__LINE__, __FILE__) EOF is($file, __FILE__, 'file matches with call level 1'); is($line, $line_expected, 'line number matches with call level 1');