Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery

Re: Here, doccy...*woof*

by footpad (Monsignor)
on Jun 21, 2001 at 06:28 UTC ( #90274=note: print w/replies, xml ) Need Help??

in reply to Here, doccy doccy. nice doccy. heredoc, treat.

It is written in the POD of perldata (version 5, release 6):

A line-oriented form of quoting is based on the shell "here-document" syntax. Following a << you specify a string to terminate the quoted material, and all lines following the current line down to the terminating string are the value of the item. The terminating string may be either an identifier (a word), or some quoted text. If quoted, the type of quotes you use determines the treatment of the text, just as in regular quoting. An unquoted identifier works like double quotes. There must be no space between the << and the identifier. (If you put a space it will be treated as a null identifier, which is valid, and matches the first empty line.) The terminating string must appear by itself (unquoted and with no surrounding whitespace) on the terminating line.

Granted it's a little oblique, but it is there--as someone once reminded me. Since then, I have seen it mentioned in a couple of other places, including (if memory serves) Rat, Camel (currently 50% off, via that link), and the Spikey Ball.


Replies are listed 'Best First'.
(vynce) Re: (footpad) Re: Here, doccy...*woof*
by Vynce (Friar) on Jun 21, 2001 at 07:53 UTC

    yes, and from perlop,

    Quote and Quote-like Operators While we usually think of quotes as literal values, in Perl they function as operators, providing various kinds of interpolating and pattern matching capabilities. Perl provides customary quote characters for these behaviors, but also provides a way for you to choose your quote character for any of them.
    nowhere does it imply (to me) that there are situations where you can use " but not qq(), so i would expect to be able to use
    print <<qq~DOUBLE~; $foo DOUBLE
    but i can't.

    and that doesn't explain or demonstrate other weird uses of heredoc syntax, for example,

    my @list = (<<HERE, <<THERE, <<EVERYWHERE); cluck, cluck HERE baa, baa THERE e i e i o EVERYWHERE print "with a ", shift @list, "and a ", shift @list, "singing ", shift + @list;
    so i'd still like a tutorial. but maybe i'll have to write it myself.

Re: Re: Here, doccy...*woof*
by Masem (Monsignor) on Jun 21, 2001 at 15:42 UTC
    Since then, I have seen it mentioned in a couple of other places, including (if memory serves) Rat, Camel (currently 50% off, via that link), and the Spikey Ball.

    nit: It's not a rat, it's a mouse! Quick quote from the Colophon:

    The animal featured on the cover of CGI Programming for the World Wide Web is a mouse, a rodent of the family Muridae.

    This ends today's extremely pointless fact, g'day!

    Dr. Michael K. Neylon - || "You've left the lens cap of your mind on again, Pinky" - The Brain

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (6)
As of 2016-10-22 12:05 GMT
Find Nodes?
    Voting Booth?
    How many different varieties (color, size, etc) of socks do you have in your sock drawer?

    Results (294 votes). Check out past polls.