如何解析Perl命令行程序用法

技术如何解析Perl命令行程序用法如何解析Perl命令行程序用法,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Perl命令行程序命令行程序下面的几个Pe

如何分析Perl命令行程序的用法,针对这个问题,本文详细介绍了相应的分析和解答,希望能帮助更多想要解决这个问题的朋友找到更简单更容易的方法。

Perl命令行程序

命令行程序

下面的Perl参数可以使简短的Perl程序在命令行上轻松运行。-e允许编译器在命令行上直接执行Perl代码。例如,我们可以直接在命令行上运行“HelloWorld”程序,而无需将其编写为Perl程序。

$Perl

-e'print'HelloWorld\n '

Multiple -e也可以同时使用,运行顺序取决于它出现的位置。

$Perl

-e ' print ' hello ' $ $ '-e ' print ' world \ n ' '

像所有的Perl程序一样,只需要程序的* * *行不需要用;结束。

虽然您也可以使用-e来引用模块,-M使它更容易。

$Perl

-mlwp :3360简单-e ' print ' http://www . example.com '

-M模块名与使用模块名相同。有些模块有默认的模块导入。如果不想导入它们,可以使用-m-m模块名,如usemodule(),关闭默认导入。例如,在下面的示例中,因为默认情况下导入head函数,所以在使用-m时不会执行它,从而导致没有输出。

$Perl

-mlwp :3360简单-e ' print ' http://www . example.com '

-m和-M有许多方便的语法来帮助你使用它们。您可以在=

$Perl

-MCGI=: standard-e ' print header '

这里介绍了CGI.pm的:standard,可以使用表头功能。可以使用引号和逗号引入多个参数。

$Perl

-MCGI='头,开始_html'-e '打印头,开始_html '

我们在这里介绍了header和start_html函数。

Perl命令行程序之隐式循环

-n和-p增加了循环的功能,这样就可以逐行处理文件了。

$Perl

-n-e'somecode'file1

这与以下程序相同。

管线:

while(){ 0

#你的代码在这里

}

注意:在命令行中打开文件并逐行读取。默认情况下,每行都保存在$ _中。

$Perl

-n-e'print'$。-$_ ' '文件

上面一行可以写成

管线:

while(){ 0

打印' $。-$_'

}

输出当前行号$。和当前行号$_。-p可以使上述程序更容易。-p将输出$ _的内容,如下所示:

管线:

while(){ 0

#你的代码在这里

}继续{

printordie'-pdestination:$!\n'$$

}

继续这里保证打印将在每个循环中调用。

使用-p,我们的打印行数程序可以更改为

$Perl

-p-e'$_='$。-$_''

在这种情况下,我们不需要显式调用print函数,因为-p选项已经调用了它。

请注意,LINE:标记允许我们直接跳转到下一个输入记录,无论您输入多少层循环。使用下一行。

$Perl

-n-e ' nextline除非/pattern/;打印$_ '

当然,你也可以这样写:

$Perl

-n-e ' print除非/pattern/'

在更复杂的情况下,下一行可以使您的代码更容易理解。

如果你想在循环前后做一些事情,你可以使用BEGIN或者ENDblock。下面一行代码可以计算文本文件中的字数。

$Perl

-ne ' END { print $ t } @ w=/(\ w)/g;$t=@w'file.txt

每行中所有匹配的单词都放入数组@w中,然后@w的元素数增加到$ t。ENDblock中print***输出文件中的总单词数。

还有另外两个参数可以使这个程序更容易。-a打开自动分割模式。空格是默认的分隔号。输入按照分隔号进行分隔,然后放入默认数组@ f,因此,我们可以将上面的程序改写如下

$Perl

-

ane'END{print$x}$x+=@F'file.txt
你也可以通过-F把缺省的分离号改为你想要的.例如把分离号定为非字符:

$Perl
-F'\W'-ane'END{print$x}$x+=@F'file.txt
下面通过Unixpassword文件来介绍一个复杂的例子。Unixpassword是文本文件,每一行是一个用户记录,由冒号:分离。第?行是用户的登录shell路径。我们可以得出每一个不同shell路径被多少个用户使用:

$Perl
-F':'-ane'$s{$F[6]}++;'\
>-e'END{print"$_:$s{$_}"forkeys%s}'/etc/passwd
虽然现在不是一行,但是你可以看出使用参数可以解决什么问题。

Perl命令行程序之数据分隔符

我以前的文章里提到过$/和$\--输入,输出分隔号。$/用来分隔从文件句柄里读出的数据,缺省$/分隔号是\n,这样每次从文件句柄里就会一行行的读取。$\缺省是空字符,用来自动加到要print的数据尾端。这就是为什么很多时候print都要在末尾加上\n。

$/和$\可与-n-p一起使用。在命令行上相对应为-0(零)和-l(这是L)。-0后面可以跟一个16进制或8进制数值,这个值用来赋给$/。-00打开段落模式,-0777打开slurp模式(即可以一次把整个文件读入),这与把$/设为空字符和undef一样效果。

单独使用-l有两个效果,***自动chomp输入分隔号,第二把$/值付给$\(这样print的时候就会自动在末尾加\n)

我个人常常使用-l参数,用来给每一个输出加\n.例如

$Perl

-le'print"HelloWorld"'

Perl命令行程序之原位编辑

使用已有的参数我们可以写出很有效的命令行程序.常见的UnixI/O重定向:

$Perl

-pe'somecode'<input.txt>output.txt
这个程序从input.txt读取数据,然后做一些处理再输出到output.txt.你当然也可以把输出重定向到同一个文件里.

上面的程序可以通过-i参数做的更简单些。-i把源文件更名然后从这个更名的源文件里读取。***把处理后的数据写入源文件。如果-i后跟有其他字符串,这个字符串与源文件名合成后来生成一个新的文件名。此文件会被用来储存原始文件以免被-i参数覆盖。

这个例子把所有php字符替换为Perl:

$Perl

-i-pe's/\bPHP\b/Perl/g'file.txt
程序读取文件的每一行,然后替换字符,处理后的数据重新写入(即覆盖)源文件.如果不想覆盖源文件,可以使用

$Perl

-i.bak-pe's/\bPHP\b/Perl/g'file.txt
这里处理过的数据写入file.txt,file.txt.bak是源文件的备份.

关于如何解析Perl命令行程序用法问题的解答就分享到这里了,希望

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/84212.html

(0)

相关推荐

  • 树莓派系统下如何从命令行切换到桌面

    技术树莓派系统下如何从命令行切换到桌面本篇文章为大家展示了树莓派系统下如何从命令行切换到桌面,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。命令行下运行如下命令,进入树莓派的设置页

    攻略 2021年11月11日
  • 晋陶渊明独爱菊,虽艳无俗姿太皇真富贵的完整诗句

    技术晋陶渊明独爱菊,虽艳无俗姿太皇真富贵的完整诗句爱国诗人一心想着报效祖国,杀敌立功晋陶渊明独爱菊。但南宋小朝廷不容许他这样的爱国将士的积极抗战活动。当时王炎因之调离川陕,陆游也被解除成都安抚使参议官之职,正是“渭水岐山

    生活 2021年10月29日
  • 关于计算机中使用补码运算

    技术关于计算机中使用补码运算 关于计算机中使用补码运算1. 原码、反码、补码简单介绍原码、反码、补码都是含有一个符号位的、对带符号数的二进制表示,对应于同一个真值。
    原码带符号位直接读出来就是真值。

    礼包 2021年12月6日
  • 抖音刷1万粉丝多少钱,抖音10万粉丝号出售

    技术抖音刷1万粉丝多少钱,抖音10万粉丝号出售抖音刷1万粉丝多少钱,抖音10万粉丝号出售
    愚蠢的价格app里有无尽的优惠券。不需要依赖别人。想用就用,比加群方便多了。你只需要一个邀请码:66650,随时随地享受优惠!

    测评 2021年11月13日
  • 个人建设银行账户查询,建设银行个人账户余额查询

    技术个人建设银行账户查询,建设银行个人账户余额查询建行银行卡查询余额的办法有个人建设银行账户查询:1.网点查询:持卡人携带身份证、银行卡前往任一建行营业厅,向工作人员提出查询余额申请,在验证个人身份后即可查询。2.ATM

    生活 2021年10月22日
  • 有哪些更改数据库密码的方式

    技术有哪些更改数据库密码的方式这篇文章主要讲解了“有哪些更改数据库密码的方式”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“有哪些更改数据库密码的方式”吧!1.忘记 roo

    攻略 2021年10月22日