2007/7/11, Ronald Fischer <ronald.fischer / venyon.com>: > 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(<<XXX, 123) > 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