http://qs321.pair.com?node_id=393966


in reply to Including files

You probably want to fix this:

my $code = join( "\n", qq[#line 1 "$filename"], File::Slurp::read_file($filename) );

You provide list context to read_file, only to then glue all the lines back together anyway. Except that you didn't chomp them, so joining with \n doubles all EOLs which throws off your line numbers. You want a simple concatenation instead.

my $code = qq[#line 1 "$filename"\n] . File::Slurp::read_file($filenam +e);

Very nice work on the node.

Makeshifts last the longest.

Replies are listed 'Best First'.
Re^2: Including files
by Juerd (Abbot) on Sep 26, 2004 at 20:24 UTC

    You provide list context to read_file, only to then glue all the lines back together anyway.

    Oops. That join is a left over bit of an earlier, more complex, attempt. Because Perl doesn't care about double newlines, and I didn't test with multi-line strings, and haven't even looked at line numbers, I never noticed that anything was wrong.

    You are of course right that simple concatenation is better here. I'll update the node right away.

    Juerd # { site => 'juerd.nl', plp_site => 'plp.juerd.nl', do_not_use => 'spamtrap' }