In article
<[EMAIL PROTECTED]>, Damian
Conway <[EMAIL PROTECTED]> wrote:

> No. It's Pod. *Any* line that begins with '=begin' always starts a Pod
> block. Always.

As you know, one of the biggest complaints about Perl is that you have
to have a lot of special rules knowledge to figure some things out.
Whether that is true doesn't really matter: people still complain about
it.

In this case, it will actually be true. That a Perl 6 compiler might
actually decide that in the middle of a statement it isn't a statement
anymore but is Pod will cause some grief, not only in the here doc
example you show, but in things such as:


   my $x
   =begin();

This impacts Learning Perl 6 rather early because it's a rule that
people need to know at the same time that we tell them that whitespace
is insignificant. That's not really true anymore because a newline
followed by an = followed by begin is this special case, **no matter
how it shows up in the program**. Now there's this extra footnote to
explain this situation, and at the level of basic syntax, we have to
explain a lot more.

I realize that the motivation for this was to be able to scan a file
and extract the pod without parsing the Perl, but when the consequences
affect very basic language things, like where you put your whitespace
and operators,  then you create more of a mess than you solve.

So, if this is the case, how will a new Perl 6 user debug a program
failure when part of their program mysteriously disappears because
they just happened to have =begin at the beginning of a line? And, is
the tradeoff in language complexity worth the extra trouble?

Also, doesn't this then limit Pod to Perl 6 (which I thought was not
the goal)? I doubt other languages will want to deal with this
situation.

Reply via email to