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.