Theo has asked for the wisdom of the Perl Monks concerning the following question:

Hello Monks.

I'm trying to comment out a block of code with POD commands as suggested by perldoc -q comment. After some experimenting, it looks like there are two ways to start a comment block: =begin comment text and =for nobody, but the only way to end the block is =end. I can see no real effect of the =end comment text command. Am I missing something significant here?

-ted-

Replies are listed 'Best First'.
Re: Block comments with POD commands
by sgifford (Prior) on Jul 16, 2003 at 20:18 UTC

    According to perlpod(1), =for uses the next paragraph (everything until a blank line), while =begin runs until a matching =end. If the block of code you're commenting out is just one POD paragraph, it will probably work the same both ways, since =for will ignore the extra =end.

    It's important to keep in mind that POD is designed for documentation, not for commenting out blocks of code; the commenting effect is just a convenient side-effect. That's why the syntax seems like a strange way to do comments.

      Thank you sgifford. Is there a better way to disable a block of code?

      -ted-

        If the code compiles, I often just wrap it in if (0) { ... }. If it doesn't and you're commenting it out temporarily, using the POD style is your best bet; just keep in mind that it will feel a little awkward. If it's commented out longer-term, I would put # at the beginning of all the lines, as it's less likely to confuse people (including you!) looking at the code later. Hopefully your editor makes #-ing out a bunch of lines pretty painless; if not I might consider using POD format anyways.

        That's just my personal style; I'm sure there are other ways of doing things with their own advantages and disadvantages.

        If it's to be a permanent comment, I stick with using #.
        If I'm just commenting out code temporarily, I use =cut.

        =cut my $code = "I wish to comment"; =cut
Re: Block comments with POD commands
by TVSET (Chaplain) on Jul 16, 2003 at 22:27 UTC