#!/usr/bin/perl -w use strict; use warnings; sub foo{ my $code = shift; <<"END_MSG"; Add the code $code END_MSG } my $code=<<'END_MSG'; line 1 line2 END_MSG print "before calling\n"; print $code; print "after calling\n"; print foo($code); print "why blank line above?\n"; #### perl t2.pl before calling line 1 line2 after calling Add the code line 1 line2 why blank line above? #### perl>perl -v This is perl 5, version 18, subversion 2 (v5.18.2) built for x86_64-linux-gnu-thread-multi (with 41 registered patches, see perl -V for more detail)