On 10/22/07, Neil Mitchell <ndmitchell@gmail.com> wrote:
If this now reports no errors, who wants to guess which come up as
escape codes, and which don't. The way other languages like C# have
dealt with this is by introducing a new type of quoted string:

@":\/"

The C# implementation is really annoying, because quotes appear in strings so often. Whenever I wanted to use that facility its because I have some inline XML, and I have to double up all the quotes after pasting it in.

I like the idea of 'heredocs' from Ruby, PHP and others. Using Ruby, I can specify a string fairly easily:

  puts <<-EOS
This is a long string
that will print as formatted,
  including spaces, "quotes" and
newlines.
EOS

Note that quotes and such don't need to be escaped. What's really sweet is Ruby treats that as a string in-place, so if puts took more arguments they just come after the heredoc:

 puts <<-EOS, "foo", true, 1
My string which
doesn't interfere with the arguments above
EOS

Of course, because strings are just another object in Ruby, you can call methods on the string constructed:

  puts <<-EOS.length
This will print
the length of the
string.
EOS
 
My two cents - I haven't found another language that handles heredocs as nicely as Ruby does.

Justin