如何全面解析Perl命令行应用

技术如何全面解析Perl命令行应用本篇文章给大家分享的是有关如何全面解析Perl命令行应用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。和大家重点讨论一下P

本文是关于如何全面分析Perl命令行应用程序。边肖觉得挺实用的,所以分享给大家学习。希望你看完这篇文章能有所收获。让我们和边肖一起看看。

让我们关注一下Perl命令行的概念。在这里,我们将从五个方面为您介绍。Perl有许多命令行参数。让我们了解一些常用的参数。

Perl命令行介绍

Perl有许多命令行参数。通过它们,我们有机会编写更简单的程序。在本文中,我们了解一些常用的参数。

***部分:SafetyNetOptions安全网参数

当使用Perl尝试一些聪明(或愚蠢)的想法时,不可避免地会出错。有经验的Perl程序员经常使用三个参数来提前找出错误。

1:-C

这个参数编译perl程序,但并不真正运行它。它检查所有语法错误。每次修改Perl程序后,我都会立即使用它来查找任何语法错误。

$perl-cprogram.pl

2:-W

它会提示你任何潜在的问题。5.6.0之后的Perl版本已经使用了usewarnings已替换-W .您应该使用usewarnings,因为它比-W更灵活.

3:-T

它将perl置于tain模式。在这种模式下,Perl会质疑任何来自程序外部的数据。例如,从命令行、外部文件或CGI程序中读取的数据。

这些数据将在T模式下被污染。

第二部分:命令行Perl参数:可以让短小的Perl程序运行在命令行.

1:-e

您可以让Perl程序在命令行上运行。

例如,我们可以在命令行上运行“HelloWorld”程序,而无需将其写入文件,然后再运行它。

$perl-e'print'HelloWorld\n '

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

$ perl-e ' print ' hello ';-电子版《世界》

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

2:-M

模块可以照常引用。

$ perl-mlwp :3360 Simple-e ' getstore(' http://www . 163.com/',' 163.html')' # #下载整个网页

-M模块名与使用模块名相同。

第三部分:隐式循环

3:-n

增加了循环的功能,让你可以一行一行的处理文件。

$ perl-n-e ' print;1 . txt # # # # # # $ perl-ne ' print;'1.txt

这与以下程序相同。

管线:

while(;){

打印;

}

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

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

上面一行可以写成

管线:

while(;){

打印' $。-$_'

}

输出当前行号$。和当前行号$ _

:-p,与-n相同,但也将打印$ _的内容。

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

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

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

还有另外两个参数可以使这个程序更容易。

5:-a

打开自动分割模式。空格是默认的拆分号。输入根据拆分号进行拆分,然后放入默认数组@F

使用-a,上面的命令可以编写如下:

$ perl-ane ' end { print $ x } $ x=@ f ' file . txt # #使用-a。

6:-F

将默认分隔号更改为您想要的。例如,如果分隔号设置为非字符,则上述命令可以更改为:

$ perl-F ' \ W '-an ' end { print $ x } $ x=@ F ' file . txt

下面是一个通过Unixpassword文件的复杂例子。Unixpassword是一个文本文件,每行都是一条用户记录。

用冒号:分隔。第7行是用户的登录shell路径。我们可以找出有多少用户在使用每个不同的shell路径:

$ perl-F ' : '-ane ' $ s { $ F[6]};'\;-e ' END { print ' $ _ : $ s { $ _ } ' forkeys % s } '/etc/passwd

/p>

虽然现在不是一行,但是你可以看出使用参数可以解决什么问题.

第四部分:RecordSeparators数据分隔符

$/和$\--输入,输出分隔号.
$/用来分隔从文件句柄里读出的数据,缺省$/分隔号是\n,这样每次从文件句柄里就会一行行的读取
$\缺省是空字符,用来自动加到要print的数据尾端.这就是为什么很多时候print都要在末尾加上\n.
$/和$\可与-n-p一起使用.在命令行上相对应为-0(零)和-l(这是L).
-0后面可以跟一个16进制或8进制数值,这个值用来付给$/.
-00打开段落模式,-0777打开slurp模式(即可以一次把整个文件读入),这与把$/设为空字符和undef一样效果.

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

1:-l参数,用来给每一个输出加\n.例如
$perl-le'print"HelloWorld"'

第五部分:原位编辑

使用已有的参数我们可以写出很有效的命令行程序.常见的UnixI/O重定向:
$perl-pe'somecode'<input.txt>>output.txt

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

上面的程序可以通过-i参数做的更简单些.

2:-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/84213.html

(0)

相关推荐

  • python playwright自动等待和断言举例分析

    技术python playwright自动等待和断言举例分析本篇内容主要讲解“python playwright自动等待和断言举例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家

    攻略 2021年11月26日
  • 如何理解Spring启动过程

    技术如何理解Spring启动过程这篇文章主要介绍“如何理解Spring启动过程”,在日常操作中,相信很多人在如何理解Spring启动过程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何理

    攻略 2021年10月20日
  • 右转的英文,直行然后右转英语怎么说

    技术右转的英文,直行然后右转英语怎么说直走然后向右转。 英语右转的英文:and then turn right.例句:1、Go straight ahead, then turn right.
    直走然后右转。
    2、A E

    生活 2021年10月20日
  • Tomcat是如何处理请求参数的

    技术Tomcat是如何处理请求参数的Tomcat是如何处理请求参数的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。url请求中带参数的形式(即我们常说的GE

    攻略 2021年12月8日
  • 龙眼肉的做法,四川特色菜蒸龙眼肉是怎么做的

    技术龙眼肉的做法,四川特色菜蒸龙眼肉是怎么做的药用龙眼肉的做法: 配方:  龙眼肉50~100G
    制法:  龙眼肉置碗内,隔水蒸熟。
    功能:  补心安神,养血益脾。
    主治:  心脾两虚之心悸失眠,多梦易惊。

    生活 2021年10月31日
  • 跨境电商租用美国服务器有必要吗

    技术跨境电商租用美国服务器有必要吗对于跨境电商来说随着您的业务增长,您应该关心最重要的一件事是您的网站服务器能够承载更多并发。这里美国服务器在市场上一向以高性价比和强大性能享有盛誉,因此成为很多跨境电商用户搭建商城平台的

    礼包 2021年12月14日