in reply to Re: Syntax error with use constant and switch with comment between
in thread Syntax error with use constant and switch with comment between

I guess I assumed that a core module would not create problems; especially in such a trivial example. I decided to give Switch a try after years of looking the other way because it seemed experimental. No, I don't have 5.10 at work, but this may cause me to push for an update. Curious why you didn't suggest getting rid of use const or not using comments because they create problems? ;)

  • Comment on Re^2: Syntax error with use constant and switch with comment between
  • Download Code

Replies are listed 'Best First'.
Re^3: Syntax error with use constant and switch with comment between
by BrowserUk (Patriarch) on Dec 06, 2009 at 18:33 UTC

    The problem with the Switch module is that it use a source filter to implement the syntax, but the parser is not very robust and that means it is easily confused. Simply best not to use it. Bewildering that it was ever made a part of the core.


    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.
Re^3: Syntax error with use constant and switch with comment between
by ikegami (Patriarch) on Dec 06, 2009 at 22:32 UTC

    Curious why you didn't suggest getting rid of use const or not using comments because they create problems?

    Why would I suggest that you stop writing Perl so you can use an unnecessary and broken module?

      Unnecessary is a matter of opinion really. The fact is that this piece of code behaves differently when a comment is changed and I find this unsettling to say the least. Why wouldn't the first thing a source filter do is remove lines beginning with #?

        Unnecessary is a matter of opinion really.

        At the time, I was operating under the premise that you could use Perl's switch statement (given/when).

        The fact is that this piece of code behaves differently when a comment is changed and I find this unsettling to say the least.

        I concur

        Why wouldn't the first thing a source filter do is remove lines beginning with #?

        Aside from the fact that it only remove a portion of comments, it would break

        print <<'__EOI__'; ########### # Heading Meow meow meow meow meow meow meow meow meow meow. __EOI__