http://www.perlmonks.org?node_id=967720


in reply to Re^2: POD Meditation?
in thread POD Meditation?

Except that there isn't any POD... ;-) It's the POD parsers that think there's POD hiding inside a string (here doc).

Fun note, this code also plays holy hell with the syntax highlighter in my IDE.
I've never bothered with syntax highlighters, and your remark doesn't convince me I was wrong ;-)

Replies are listed 'Best First'.
Re^4: POD Meditation?
by LanX (Saint) on Apr 28, 2012 at 12:47 UTC
    > Except that there isn't any POD...

    Where do you get your definition for POD from?

    Perl and POD are two different languages which can be intermingled somehow.

  • POD is what the POD-parser matches, and the input doesn't have to be a perl-source anyway.
  • And the Perl-parser doesn't know much about POD-syntax, it basically ignores any blocks between lines starting with a new statement beginning with "=" and followed by at least one word and finished by '=cut'.

    This ignored block doesn't need to be valid POD:

    > perl print "x"; =bala bala blaa asas =cut print "x"
    And the code surrounding POD doesn't need to be Perl.

    Cheers Rolf

      Where do you get your definition for POD from?
      From man perlsyn:
      PODs: Embedded Documentation
          Perl has a mechanism for intermixing documentation with source code.
          While it's expecting the beginning of a new statement, if the compiler
          encounters a line that begins with an equal sign and a word, like this
      
              =head1 Here There Be Pods!
      
          Then that text and all remaining text up through and including a line
          beginning with "=cut" will be ignored.  The format of the intervening
          text is described in perlpod.
      
      Perl and POD are two different languages which can be intermingled somehow.
      But in the snippet the OP gives, there's nothing intermingled. There's just Perl code.
      And the Perl-parser doesn't know much about POD-syntax
      I'm not claiming it does, or should be doing. But Perl does have to know where a POD section starts, and where it ends. And it knows where a POD section starts a lot better than any POD parser.
        /* =head1 Not_Perl() Only POD can parse POD! =cut */ function Not_Perl (){ window.alert("JavaScript!"); }

        Cheers Rolf