Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re^6: Is a here-doc a good way to retrieve data file contents for testing? (updated)

by haukex (Archbishop)
on Jan 17, 2021 at 08:51 UTC ( [id://11127030]=note: print w/replies, xml ) Need Help??


in reply to Re^5: Is a here-doc a good way to retrieve data file contents for testing? (updated)
in thread Is a here-doc a good way to retrieve data file contents for testing?

I'm pretty sure that this behaviour is intentional and has been a long time in Perl and will stay.

I agree, and I think the fact that the here-doc starts on the next line and not immediately following the opening expression follows from these examples in perlop, present since Perl 5.8.0 (the final example was eventually dropped in favor of indented here docs):

print <<"foo", <<"bar"; # you can stack them I said foo. foo I said bar. bar myfunc(<< "THIS", 23, <<'THAT'); Here's a line or two. THIS and here's another. THAT
Just don't forget that you have to put a semicolon on the end to finish the statement, as Perl doesn't know you're not going to try to do this:
print <<ABC 179231 ABC + 20;
If you want your here-docs to be indented with the rest of the code, you'll need to remove leading whitespace from each line manually:
($quote = <<'FINIS') =~ s/^\s+//gm; The Road goes ever on and on, down from the door where it began. FINIS

Replies are listed 'Best First'.
Re^7: Is a here-doc a good way to retrieve data file contents for testing? (updated)
by haj (Vicar) on Jan 17, 2021 at 09:33 UTC
    Edited: Scratch that. haukex has already mentioned this.
    If you want your here-docs to be indented with the rest of the code, you'll need to remove leading whitespace from each line manually:

    Well, that last sentence is no longer true as of Perl 5.26.

    use 5.026; say <<~'END'; This adds a new modifier "~" to here-docs that tells the parser that it should look for /^\s*$DELIM\n/ as the closing delimiter. END

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11127030]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (7)
As of 2024-04-23 15:09 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found