in reply to Re: TW2002
in thread Here Document Terminator Problems

Don't you need a semi-colon after EODATA? *shrugs*

Not only DON'T you need one, you CANNOT have one. If you do, then the line containing EODATA that perl is looking for will not be found.

Check out Why don't my <<HERE documents work?.

The end tag for a Here Doc must appear as the only thing on the line terminating the Here Doc.

As grep points out, the most likely cause of the problem is whitespace after the EODATA on the line preceding close OUT; (2nd to last line).

Update: for clarification, I mean you cannot have a semicolon on the line with the end tag, 'EODATA', as in:

print OUT <<EODATA; <-- given this, as stated sub warps { @out }; 1; EODATA; ^ | +--- semicolon here won't work

Of course, putting it on the next line is syntactically legal, and of course works.

dmm

If you GIVE a man a fish you feed him for a day
But,
TEACH him to fish and you feed him for a lifetime