Perl中多行注释的常见解决方法是什么?
提到 与许多编程语言不同,Perl目前没有实现真正的多行注释。这一点以及常用的变通方法可能会有问题。这可以通过添加新语法来解决,允许注释跨越多行,如下面引用的此处文档的变体 常见的解决办法是什么 我发现的两种技术是Perl中多行注释的常见解决方法是什么?,perl,comments,Perl,Comments,提到 与许多编程语言不同,Perl目前没有实现真正的多行注释。这一点以及常用的变通方法可能会有问题。这可以通过添加新语法来解决,允许注释跨越多行,如下面引用的此处文档的变体 常见的解决办法是什么 我发现的两种技术是 if(0){ } 及 =pod =切割 这些东西使用安全吗?还有其他更好的吗?具有“评论区域”功能的编辑器 例如,Komodo编辑。我很确定Eclipse和Jedid做得不好,但我手头没有他们来检查 该功能通常会在选定区域中每行的开头插入一个“注释此行”符号。它的好处是不与现有注
if(0){
}
及
=pod
=切割
这些东西使用安全吗?还有其他更好的吗?具有“评论区域”功能的编辑器
例如,Komodo编辑。我很确定Eclipse和Jedid做得不好,但我手头没有他们来检查
该功能通常会在选定区域中每行的开头插入一个“注释此行”符号。它的好处是不与现有注释冲突(如果在大多数语言中包装一个包含多行注释的区域,这是一个风险)如果“if”解决方案的缺点是仍然需要编译注释掉的代码(因此仍然需要检查语法)
pod解决方案的缺点是,您的评论将出现在pod生成的任何文档中
我使用的pod解决方案版本没有这个问题。Pod支持=开始格式=结束由特定格式化程序处理的段落格式。我只是发明了一种“注释”格式,我使用的任何格式化程序都不会处理这种格式
=begin comment
This is ignored by everything
=end comment
更新:
我错过了我的例子的一个重要部分。您需要以=剪切结束pod部分。这里有一个完整的例子
#!/usr/bin/perl
print "This line is executed\n";
=begin comment
print "This line isn't\n";
=end comment
=cut
print "This line is\n";
我最喜欢的多行注释设备是
\uuuu END\uu
print "Hello world\n";
__END__
The script has ended. Perl does not treat this part of the file as code.
I can put whatever I want down here. Very handy.
虽然它不是标准的,但我只是使用
=ignore
sub blah { ... }
my $commented_out_var = 3.14;
=cut
它也能正常工作,提醒我它不是POD
- 旁白:POD为我们提供了一个灵活的框架,用于包含不应视为代码的各个区域,并指定该区域的含义,这是一件有趣的事情。很明显,我们“把事情注释掉”,因为注释是这样工作的。然而,从这个术语中可以清楚地看出,评论是文字,而不是指示;文件不是更改李>
- 一个特殊的用例是注释掉几行代码。但是如果您使用版本控制系统,您可以删除不需要的代码,而不是注释掉它,如果您需要它,只需获取旧版本。Perl文档告诉您如何在中执行。它非常安全,而且由于我们可以使用Pod进行操作,因此不需要额外的语法:
如何注释掉一大块perl代码 您可以使用嵌入式POD丢弃它。把你想要的块围起来 在POD标记中注释掉。
指令为 特定的格式化程序。使用“注释”格式,该格式没有格式化程序 应该声称理解(通过政策)。在块的末尾用=begin
=end
pod指令不能去任何地方。你必须放一个豆荚 指令,其中解析器需要一个新语句,而不仅仅是 表达式或其他任意语法产物的中间部分 有关更多详细信息,请参见。# program is here =begin comment all of this stuff here will be ignored by everyone =end comment =cut # program continues
在其他答案中,您也可以这样做:=begin comment multi-paragraph comments here =end comment =cut
=for comment this is a single pod paragraph comment do not put extra blank lines after =for. the comment ends after the first blank line and regular pod continues until =cut Hello! C<Yay!> =cut
评论段落不会出现在pod输出中,但Hello“Yey!”会出现。这也适用于:=供评论 这是一个单独的pod段落注释 不在=之后添加额外的空行。这个 注释在第一个空行和之后结束 常规pod持续到=切割 你好C =切割
q^ This is another way to add multi-line comments to your code ^ if 0;
q{ my comment };
我用那种方式为我工作=head "your code to comment monkey banana" =cut
类似的东西也能起作用:q^ This is another way to add multi-line comments to your code ^ if 0;
q{ my comment };
我想这是一个在运行Perl时计算的表达式。另一种有用的方法
这不是一种Perl语法方法,但在大多数编辑器(如Notepad++)中,您可以突出显示要注释掉的代码,然后按CTRL+K。要删除注释,您可以突出显示它们,然后按CTRL+Shift+K。例如?我使用
,其中.vim与perl支持插件一起使用=pod/=cut方法。或者简单地说。@Lazer:在vim中一次编辑许多行非常容易,在gvim中更容易。只需进入可视化的HelyTin模式,选择一个范围,插入文本,和.@ FM:Perl中如何使用它?@ Laser:<代码>.为什么在每一行的开头都加上一个vim
?许多编辑器可以很容易地用宏(或等效的宏)实现这一点……不要在Perl6RFC中放太多的存货。拉里拒绝了他们中的大多数。在答案中保留第一个(不满意的)版本真的有必要吗?我不认为这会给解决方案增加什么。你能编辑你的答案并删除它吗?这样人们就能马上看到正确的解决方案了?谢谢我喜欢这种简单的方法,但我得到了以下警告:#
。您害怕警告吗?选择所需的行,然后按在无效上下文中无用地使用常量
。这将打开和关闭注释。CTRL+Q
=begin GHOSTCODE whatever you want to uncomment =end GHOSTCODE =cut