如何将Perl one-liners转换成完整的脚本?

前端之家收集整理的这篇文章主要介绍了如何将Perl one-liners转换成完整的脚本?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在网上找到很多Perl一线。有时我想将这些单行转换成一个脚本,否则我会忘记单行的语法。

例如,我使用以下命令(从nagios.com):

tail -f /var/log/nagios/nagios.log | perl -pe 's/(\d+)/localtime($1)/e'

我会用这样的东西来代替它:

tail -f /var/log/nagios/nagios.log | ~/bin/nagiostime.pl

然而,我无法想出快速将这些东西放入脚本的最佳方法。有没有人有一个快速方法把这些单行扔到一个Bash或Perl脚本?

解决方法

您可以通过传递生成Perl源代码的B :: Deparse编译器后端将任何Perl一行转换为完整脚本:
perl -MO=Deparse -pe 's/(\d+)/localtime($1)/e'

输出

LINE: while (defined($_ = <ARGV>)) {
    s/(\d+)/localtime($1);/e;
}
continue {
    print $_;
}

手动解码命令行标志的这种方法的优点是,这正是Perl解释您的脚本的方式,所以没有猜测。 B :: Deparse是一个核心模块,所以没有什么可以安装。

原文链接:https://www.f2er.com/Perl/173072.html

猜你在找的Perl相关文章