Chinaunix
标题:
perl 命令行参数求教
[打印本页]
作者:
sunzhiguolu
时间:
2016-12-20 18:18
标题:
perl 命令行参数求教
本帖最后由 sunzhiguolu 于 2016-12-20 18:23 编辑
perl 的命令行参数 -l (字母 L 的小写形式), 对于段落文本的处理 读取目标文本前以及处理后输出时都进行了哪些工作?
比如测试文本如下:
A
B
C
D
E
F
G
H
I
代码如下:
perl -00ple 's/\n/\t/g' f
复制代码
我的期望输出是这样的:
A B C
D E F
G H I
但是实际的输出结果是这样的:
A B C
D E F
G H I
这个 -l 参数实在难以把握, 哪位大神帮忙指点一下。 谢谢。。。
作者:
zhouzhen1
时间:
2016-12-20 21:35
关于Perl命令行参数不清楚的都可以去看perlrun这个文档。
对于你这个问题,值得注意的是-l在时候会把$/设置为$\。你用了paragraph mode所以按理$/为空字符串,但是这个有点特殊,因为实际产生作用的terminator显然不可能是一个空字符,而相应的$\也并不是空串。
我们可以看一下,
$ perl -00ple 'print "s$\e"; s/\n/|/g' f
s
e
A|B|C
s
e
D|E|F
s
e
G|H|I
复制代码
可见$\实为两个换行。
为达到你的预期,一个workaround的办法是自己设置一下$\
$ perl -00ple '$\="\n"; s/\n/|/g' f
A|B|C
D|E|F
G|H|I
复制代码
作者:
sunzhiguolu
时间:
2016-12-21 16:47
我只想说您分析的非常透彻,讲解的好详细。 非常感谢帮助。。。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2