我如何只注释掉Perl中的部分行?

时间:2010-05-12 11:06:04

标签: perl comments

如何在Perl中注释单行的一部分,如下一行:

 if($clevel==0){#never happends}

我希望能够评论最后一个结束括号,而不需要换行。

6 个答案:

答案 0 :(得分:12)

#符号开始以行尾结束的注释。

答案 1 :(得分:8)

如果真的那么重要,请使用源过滤。

# C_Style_Comments.pm
package C_Style_Comments;
use Filter::Simple;
FILTER {   s{/\* .* \*/}{}gmx    };
1;

$ perl -MC_Style_Comments -e 'print /* 5, No wait, I mean */ 3'
3

答案 2 :(得分:7)

你不能写的任何理由:

if($clevel==0){#never happends}

as:

if($clevel==0){} #never happens

您可以使用一些技巧来隐藏消息,例如:

0 and 'some comment'

但如果其他人不得不在将来维护您的代码,那么您只会让它变得更加混乱。

在语言的约束下工作,而不是试图强迫它像某种语言一样,你更熟悉,往往会让你学习新的东西。我个人讨厌在IDL工作,但是一些处理不良循环性能的技巧使我优化了自从用其他语言编写的代码。

答案 3 :(得分:5)

#,然后是换行符。你可以将它们视为各种各样的括号,因为在Perl中很少会因为在不同的行上而失去意义。

my $ans = 2 + rand( 5 ) + $pixels / FUDGE_FACTOR;

my $ans = # 2 + 
    rand( 5 ) + $pixels # / FUDGE_FACTOR
    ;

或者来自:

if ( dont_know_how_this_breaks() && defined $attribute ) { 
   #...
}

致:

if ( # dont_know_how_this_breaks() && 
     defined $attribute ) { 
   #...
}

答案 4 :(得分:2)

使用字符串作为内联注释:

perl -lne '$a++; q#some explanation#;print;'

对于嵌入在Makefile中的perl代码(以及Bash脚本和Vim脚本),必须使用内联注释,如此vimscript调用perl .. VIM thesaurus file

答案 5 :(得分:0)

perl中的部分行或多行注释:

=comment
...
...
...

=cut