大概的思路是从CU上面来的,转过来,再加上一些注释,仅供娱乐~~~
首先是要解决的问题:将
12
23
34
45
56
67
编程下面的形式:
1223
3445
5667
使用perl的一行代码来做:
下面就是第一种做法:
perl -pe 'chomp if $. % 2' file #如果行数是奇数的话就去掉每行最后的换行
#chomp的作用去掉每行的\n
#$.为Perl的内置变量,当前的行号
但是Randal(Perl hacker,教育家)给出这个方法:
perl -pe 'chomp; $_ .= <>' file #这个比上个的好处就是减少了模的操作
#读取一行后,再通过<>符号继续读取,连接
#到原字符串上面
#$_为内置变量,当前操作的变量内容
后来John W.(another Perl hacker)秀了一个更smart的方法:
perl -lpe '$\=--$|?$,:$/' file
以下来自CU上Perl版主兰花仙子的评论:
“代码写到这样就是神仙了~~ 反正偶一时半会没看明白~~
我也读过大小骆驼呀、高级编程啥的也读过一堆呀,怎么就想不到呢?
达到这一级,除了经验外,更多的是靠冰雪玲珑心了~~
--对,一定要有一颗玲珑的慧心~~
看看“Just another Perl hacker”有多少种写法就知道了。”
John写的代码确实是厉害,各种内置变量。
先介绍一下基本的内置变量:
$. 记录当前处理到第几行了
$/ 改变系统默认的换行符
$\ 改变print输出后的添加符号
$" 哈西输出符号
$, print @array 元素间的连接符
对于上面种还有一个变量是$|,这个变量的初始值为0, --$|后就变成了1,接着在执行
的话就变成了0,如此功能。
现在大概的意思就出来了,-l的选项的作用就是每行的读取出来的意思。
高手确实是高手呀,真是让人望其项背,自叹不如....唯有努力学习呀。
【Perl】茴字的多种写法
最新推荐文章于 2018-05-23 11:10:08 发布