Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re: Multi-line comments in perl code?

by dimar (Curate)
on Jul 13, 2006 at 15:20 UTC ( #560979=note: print w/replies, xml ) Need Help??


in reply to Multi-line comments in perl code?

The feature about which you inquire is customarily referred to as Multi-Line Comments. Perl does not have this feature. That is, it does not unless you resort to a source code filter, an add-on module or any of various klunky 'workarounds' which may or may not be suitable for your needs.

It is important to emphasize that POD is *not* the same thing as Multi-Line Comments. At least not if you are accustomed to the CPlusPlus/Java variant. Among other things, POD does not support indentation, and POD does not support "comments" that span fewer than two lines.

It may be more productive to simply acknowledge that perl does not have this feature, and consider the alternatives, such as a script or macro for your text editor, rather than try to shoehorn them in, and bother with potential side-effects.



=oQDlNWYsBHI5JXZ2VGIulGIlJXYgQkUPxEIlhGdgY2bgMXZ5VGIlhGV

Replies are listed 'Best First'.
Re^2: Multi-line comments in perl code?
by xdg (Monsignor) on Jul 14, 2006 at 13:45 UTC
    Among other things, POD does not support indentation

    Sure it does -- in a Pod format block.

    =begin someformat This comment can be indented as much as I want =end someformat =cut

    That said, I agree otherwise with your point that Perl doesn't support multi-line comments. Pod can be used for multi-line comments, but Perl and Pod are really two separate languages that can live in the same file. The Perl parser and Pod parsers just choose to pay attention to different languages.

    -xdg

    Code written by xdg and posted on PerlMonks is public domain. It is provided as is with no warranties, express or implied, of any kind. Posted code may not have been tested. Use of posted code is at your own risk.

      Among other things, POD does not support indentation
      Sure it does -- in a Pod format block.

      Perhaps, but that particular definition of "indentation" is ... shall we say, a lot more 'loose' than the originally intended definition, which can be illustrated as follows:

      =for comment This comment can be indented as much as I want and even more than I want =cut for(0 .. 4){ for(0 .. 3){ for (0 .. 2){ =for comment However, even though "indentation" is supported here, we still have those dangling POD delimiters way back over there. <- <- <- <- Attempting to line them up with the rest of the code produces an error. This is not good because it breaks 'code-folding' in the text editor. It also looks just plain ugly. =cut print "$_\n"; }; }; }; __END__

      Moreover, one has to consider whether the POD in this illustration is even well-formed to begin with. Should this be a format block? Will begin/end work? Is 'for comment' sufficient? Will this mess up the POD documentation? *Way* too much hassle when all you wanted was a *comment*.

        Now I understand what you meant. "Supports" is a vague term. I would have said instead that Pod commands can't be indented, which breaks up the indentation of code around it.

        Personally, I use vim and let it handle my comments for me.

        -xdg

        Code written by xdg and posted on PerlMonks is public domain. It is provided as is with no warranties, express or implied, of any kind. Posted code may not have been tested. Use of posted code is at your own risk.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://560979]
help
Chatterbox?
[Corion]: hippo: If you have a Unicode-wise Perl then likely some zero-width characters in $x would work. Maybe $x = "\x{200b}" works.
[Corion]: Hmm - no, that outputs 1 for me on 5.14 - perl -wle "my $x = qq(\x{200b}); warn $x; warn length $x"
[hippo]: Smart - I'll give that a go. Thanks.
[hippo]: Ah
[Corion]: But maybe there is some other Unicode string that will be true but have a zero width
[hippo]: For explanation, I've seen this construct in someone else's code (no names, no pack drill) and couldn't think of a situation to trigger it.
[Corion]: You'll have to look somewhere esoteric for that. Maybe some tied variable or special dualvar can also trigger that. But it's certainly not a common occurrence
[Corion]: And on 5.20, the following also outputs no find:perl -wle 'for my $x ("\x{2000}".."\ x{1fffff}") { if( $x && ! length $x ) { warn qq(<$x>); warn length $x; die } }'
[Corion]: (this time on Unix)
[hippo]: Understood. I'll have to go through the code and see if it's doing anything fancy with ties, dual-vars or non-scalars. In the end, it's probably a bug though.

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (11)
As of 2017-07-27 13:32 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    I came, I saw, I ...
























    Results (413 votes). Check out past polls.