From: Robert Klemme Date: 2007-07-11T21:54:17+09:00 Subject: Re: Problem with HERE document as first parameter (parser bug?) 2007/7/11, Ronald Fischer : > I have problems passing a HERE document as the first parameter > to a function expecting more than 1 parameter. Example: > > # This is file here1.rb > def q(a,b) > end > q(<<-END > line1 > line2 > END > ,'x') > > > Executing this program yields the error messages > > ./here1.rb:9: syntax error, unexpected ',', expecting ')' > ,'x') > ^ > ./here1.rb:9: syntax error, unexpected ')', expecting $end I believe you have got the order wrong. Do it like this: $ ruby -e 'def f(a,b) p a,b end > f(< foo > bar > XXX' "foo\nbar\n" 123 > Using a temporary variable to hold the content of the HERE > string works fine though: > > temp=<<-END > line1 > line2 > END > q(temp,'x') > > > Bug in Ruby? Or do I misunderstand something in the workings of the > parser? The latter, see above. :-) Kind regards robert