in reply to Re: On bad habits
in thread On bad habits

eval STRING does not spawn a new interpreter. It makes a call to the compiler to parse and compile the string. Then it executes it and throws away the newly compiled code.

Here-docs are a cause of a class of error you can only avoid by avoiding here-docs. Lest that sound dumb to you, try adding a space to the end of your here-doc tag in the <<TAG start or in the TAG end. Both are usually invisible and both will cause your script's parsing to be completely awry. They're just a great way to shoot yourself in the foot.

Replies are listed 'Best First'.
Re^3: On bad habits
by Aragorn (Curate) on Jun 21, 2005 at 20:27 UTC
    This is where your editor can help. Emacs' cperl-mode can display trailing whitespace. For example:
    print <<"EOT"; This is a piece of text. EOT_
    The underscore after EOT indicates a trailing space which can help a lot in this case.

    Arjen

    All that is gold does not glitter...
      I avoid here-docs because cperl-mode's syntax hilighting and indentation seems to be often thrown by it. Maybe there's a workaround I'm not aware of...