使用Perl删除注释

时间:2010-04-10 18:30:18

标签: perl

我一直在做的是在处理文件时删除文件中的注释。我当时想知道是否有一个模块可以做到这一点。

我一直在写的代码排序是

    while(<>) {
        s/#.*// ;
        next if /^ \s+ $/x ;

        **** do something useful here ****
    }

编辑为了澄清,输入不是Perl。这是我自己创建的文本文件,可能包含我想以某种方式处理的数据。我希望能够发布我的程序忽略的评论

2 个答案:

答案 0 :(得分:5)

除非这是学习经历,否则我建议您使用Regexp::Common::comment而不是编写自己的正则表达式。

它支持多种语言。

答案 1 :(得分:3)

问题并不清楚它是什么类型的文件。我们正在处理perl源文件吗?如果是这样,你的方法并不完全正确 - 请参阅gbacon的评论。用正则表达式解析Perl源文件是多么困难(不可能?)。在这种情况下,或者如果您需要处理几种类型的文件,请使用Niffle建议的Regexp :: Common :: comment。否则,如果您认为您的正则表达式逻辑对于您的场景是正确的,那么我个人更喜欢明确地编写它,它只是一对非常简单的行,使用模块几乎没有什么好处(并且您引入了一个依赖项)。 / p>