
执行控制
-e 指定字符串以作为脚本(多个字符串迭加)执行
-M 导入模块
-I 指定目录以搜索标准位置前的模块
整洁性
-w 打开警告
-Mstrict 打开严格编译指示(pragma)
数据
-0 (这是个零)指定输入记录分隔符
-a 将数据分割成名为 @F 的数组
-F 指定分割时 -a 使用的模式(请参阅 perldoc -f split)
-i 在适当的位置编辑文件(请参阅 perldoc perlrun 以获取大量详细信息)
-c 进行perl的语法检查,但不执行perl命令
-F 把缺省的分离号改为你想要的。例如把分离号定为非字符
-l 使用-l有两个效果,第一自动chomp输入分隔号,第二把$/值付给$\(这样print的时候就会自动在末尾加\n)
-n 使用<>将所有@ARGV参数当作文件来逐行运行,会将读入的内容隐式的逐一按行来遍历文件,每一行将缺省保存在$_
-p 和-n一样,但是还会打印$_的内容
请注意 -p开关和-n开关的使用
然后我们使用try{} catch{}语句,来捕获程序异常,这个逻辑和if语句有点想,如果我们文件读取不成功,就会运行catch里面的语句,在后他打印一句话来通知我文件没有找到,在try{}里面使用opentext方法来打开我们的mytest.csv文件。库文件:.lib或者.a 命令格式: armar options archive [ file_list ] 选项: -r 在 插入文件, 替换掉已经存在的同名成员. -d 在 中删除成员. -x 在 中提取同名的成员. -m 在 中移动文件. -p 打印文件到标准输出设备. -a pos 插入/删除 后面的文件. -b pos 插入/删除 前面的文件. -u 只更新旧的文件, 与 -r 一起使用. -n 不要向object文件中添加符号表. -s 强制重新生成文档符号表. -t 打印文档的内容表. --zs 显示符号表. --zt 汇总文档内容 (大小和输入). -c 当一个新文档被创建的时候不显示警告. -c 提取的时候不要覆盖一个已经存在的文件. -t 截取系统最大长度文件名. -v 提供详细输出. --create 强制创建一个新的文档. --via file 从 via 文件中获取额外参数. --sizes 列出所有成员大小与库的总大小. --entries 列出包括入口点的部分. --vsn 打印最新的armar版本. --help 打印帮助信息.。还有 allowuser 语句,通过这条语句,可以允许或限制特定用户的打印权限,假如没有这条语句,就是所有用户可以打印。
#perl -pi –e’s/aaa/bbb/’ filename
修改当前file文件中的文件,不生成中间文件,速度很快。记住-i开关,因为它让你原地编辑文件。
#perl -ne ‘print if /^aaaaa/’ filename
象grep一样过滤文件中需要的内容。这个地方使用了-n,所以一次是做一行的操作,直到整个文件读完。另外在管道时,-n也会一样来遍历管道送过来的内容。
# perl -n -e 'print "$.– $_"' filename
我们不必打开number选项也可以实现在打印一行文本时打印此行的行号.命令:#与:print命令相类似,所不同的只是前者可以打印出行号.。例如,以下命令系列使用 '=' 命令和 'p' 命令,'=' 命令告诉 sed 打印行号,'p' 命令明确告诉 sed 打印该行(因为处于 '-n' 模式)。上面的例子中perl命令行应用程序详,f i n d命令匹配到了当前目录下的所有普通文件,并在- e x e c选项中使用ls -l。
注:$.表示当前行号

#perl -pe ‘$_ = “$. $_”‘ filename
这个其实和上面一样,分别只是使用了-p替换了-n,这个有个什么好处啦,别的地方都一样,但-p按行来遍历完文件后perl命令行应用程序详,会给$_打印出来。
大家还记得awk分割域(awk ‘{i = NF – 1; print $1 + $i}’)啊,是不是很方便,下面我们来看看perl
# perl -lane 'print $F[0] +$F[-2]'
这个神奇的地方在于-a,使用-a后,因为-n分行读进来,然后-a给数据分割成@F的数组。
#perl -ne ‘print if /^START$/ .. /^END$/’
打印正则中从$start到$end的地方
#perl -ne ‘print if $. >= 15; exit if $. >=17;’
有效地打印数字范围中的行
#perl -p -i.bak -e ‘s/\bfoo\b/bar/g’ *.c
原地修改-i开关的神奇之处在于它对@ARGV中的每个文件都用该脚本对该文件输出所产生的文件版本进行替代
#perl -ne ‘print scalar reverse $_’ test
给文件中的内容反向排序,比如文件中有fukai,就会变成iakuf
基于这种想法,我才迟迟不肯及早写出来这样的文章,我要尝试,要老伴尝试,当我们尝试安全后,我才可以介绍给大家,现在看来是时候了,我俩使用没有副作用,但是不敢保证所有人使用这种方法都没有副作用。kmode_exception_not_handled***其中错误的第一部分是停机码(stopcode)也就是stop0x0000001e,用于识别已发生错误的类型,错误第二部分是被括号括起来的四个数字集,表示随机的开发人员定义的参数(这个参数对于普通用户根本无法理解,只有驱动程序编写者或者微软操作系统的开发人员才懂).第三部分是错误名.信息第一行通常用来识别生产错误的驱动程序或者设备.这种信息多数很简洁,但停机码可以作为搜索项在微软知识库和其他技术资料中使用。其中错误的第一部分是停机码(stop code)也就是stop 0x0000001e, 用于识别已发生错误的类型, 错误第二部分是被括号括起来的四个数字集, 表示随机的开发人员定义的参数(这个参数对于普通用户根本无法理解, 只有驱动程序编写者或者微软操作系统的开发人员才懂). 第三部分是错误名. 信息第一行通常用来识别生产错误的驱动程序或者设备. 这种信息多数很简洁, 但停机码可以作为搜索项在微软知识库和其他技术资料中使用.。
1:-C
这个参数编译Perl程序但不会真正运行它.由此检查所有语法错误.每次修改perl程序之后我都会立刻使用它来找到任何语法错误.
$perl-cprogram.pl
2:-W
它会提示你任何潜在的问题.Perl5.6.0之后的版本已经用usewarnings;替换了-w.你应该使用usewarnings因为它要比-w更灵活.
3:-T
它把perl放到了tain模式.在这个模式里,Perl会质疑任何程序外传来的数据.例如,从Perl命令行读取,外部文件里读取或是CGI程序里传来的数据.
这些数据在-T模式里都会被Tainted掉.
1:-e
可以让Perl程序在Perl命令行上运行.
例如,我们可以在Perl命令行上运行"HelloWorld"程序而不用把它写入文件再运行.
$perl-e'print"HelloWorld\n"'

多个-e也可以同时使用,运行顺序根据它出现的位置.
$perl-e'print"Hello";'-e'print"World\n"'
象所有的Perl程序一样,只有程序的最后一行不需要以;结尾.
2:-M
可以象通常一样引用模
$perl-MLWP::Simple-e'getstore("http://www.163.com/","163.html")'##下载整个网页
-M+模块名和use模块名一样
3:-n
增加了循环的功能,使你可以一行一行来处理文件
$perl-n-e'print;'1.txt#####$perl-ne'print;'1.txt
这与下面的程序一样.
LINE: while(<>;){ print; } <>;打开Perl命令行里的文件,一行行的读取.每一行缺省保存在$_
$perl-n-e'print"$.-$_"'file
上面的这一行可以写成
LINE: while(<>;){print"$.-$_" } 输出当前行数$.和当前行$_.
4:-p,和-n一样,但是还会打印$_的内容
如果想在循环的前后做些处理,可以使用BEGIN或ENDblock.下面的这一行计算文件里的字数.
$perl-ne'END{print$t}@w=/(\w+)/g;$t+=@w'file.txt
每一行所有匹配的字放入数组@w,然后把@w的元素数目递加到$t.ENDblock里的print最后输出文件总字数.
还有两个参数可以让这个程序变得更简单.
5:-a
打开自动分离(split)模式.空格是缺省的分离号.输入根据分离号被分离然后放入缺省数组@F
使用-a,上面的命令可以写成这样:
$perl-ane'END{print$x}$x+=@F'file.txt##使用了-a
6:-F
把缺省的分离号改为你想要的.例如把分离号定为非字符,上面的命令可以改为:

$perl-F'\W'-ane'END{print$x}$x+=@F'file.txt
下面通过Unixpassword文件来介绍一个复杂的例子.Unixpassword是文本文件,每一行是一个用户记录,
mail用户mail文件的位置,也不需要改动path使用冒号分隔的一系列路径,系统用它来查找具体可执行程序,因此这个变量非常重要,可以根据具体的情况改动其值。海德能公司在本资料中提供的数据和信息都是经长期实验得出,我们确信这些数据和信息是准确和有效的,但由于用户的使用方式、使用条件和适用法律可能因时因地而异,海德能公司不承担由于使用本产品及样本的数据和信息所造成的后果和损失,无论单独使用还是与其他产品配合使用,建议用户自己进行试验以决定其安全性以及是否适用于用户的特定使用目的。[注:如果用 echo $path 或者 echo $ld_library_path 等类似的命令来显示路径信息的话,我们看到的将会是一大堆用冒号连接在一起的路径, tr 命令可以把这些冒号转换为回车,这样,这些路径就具有很好的可读性了:。
$perl-F':'-ane'$s{$F[6]}++;'\>;-e'END{print"$_:$s{$_}"forkeys%s}'/etc/passwd
虽然现在不是一行,但是你可以看出使用参数可以解决什么问题.
$/和$\--输入,输出分隔号.
$/用来分隔从文件句柄里读出的数据,缺省$/分隔号是\n,这样每次从文件句柄里就会一行行的读取
$\缺省是空字符,用来自动加到要print的数据尾端.这就是为什么很多时候print都要在末尾加上\n.
$/和$\可与-n-p一起使用.在Perl命令行上相对应为-0(零)和-l(这是L).
-0后面可以跟一个16进制或8进制数值,这个值用来付给$/.
一个文件可以以文本模式或二进制模式打开,这两种的区别是:在文本模式中回车被当成一个字符''\n'',而二进制模式认为它是两个字符0x0d,0x0a。一个文件可以以文本模式或二进制模式打开,这两种的区别是:在文本模式中回车被当成一个字符'\n',而二进制模式认为它是两个字符0x0d,0x0a。只是它提供了更多的功能lopen 以二进制模式打开指定的文件lread 将文件中的数据读入内存缓冲区lwrite 将数据从内存缓冲区写入一个文件lzclose 关闭由lzopenfile 或 lzinit函数打开的一个文件lzcopy 复制一个文件lzinit 这个函数用于初始化内部缓冲区lzopenfile 该函数能执行大量不同的文件处理。
单独使用-l有两个效果:
第一:自动chomp输入分隔号
第二:把$/值付给$\(这样print的时候就会自动在末尾加\n)
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-118249-1.html
人家是公民
禽兽不如
本来看着修复的是6s的功能傲娇的不想升级哦哦哦哦哦这个表情把我看酥了升升升升
是封建社会独有的东西