【Perl】茴字的多种写法

阅读更多

大概的思路是从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,编程,教育)