24小时热门版块排行榜    

Znn3bq.jpeg
查看: 444  |  回复: 4
当前主题已经存档。

yalefield

金虫 (文坛精英)

老汉一枚

[交流] 【讨论】刀劈神仙 [转载]

前几天的case:
CODE:
12
23
34
45
56
67

想变成:
CODE:
1223
3445
5667

一般大家都会想到:
CODE:
perl -pe 'chomp if $. % 2' file

这个最直观易懂。但是Randal(Perl hacker,教育家)给出这个方法:
CODE:
perl -pe 'chomp; $_ .= <>' file

这个实现得更巧妙,且没有取余运算,效率会更高。
后来John W.(another Perl hacker)秀了一个更smart的方法:
CODE:
perl -lpe '$\=--$|?$,:$/' file

代码写到这样就是神仙了~~ 反正偶一时半会没看明白~~
我也读过大小骆驼呀、高级编程啥的也读过一堆呀,怎么就想不到呢?
达到这一级,除了经验外,更多的是靠冰雪玲珑心了~~
--对,一定要有一颗玲珑的慧心~~
看看“Just another Perl hacker”有多少种写法就知道了。
神仙的代码一般人是看不懂的,好在有懂的人出来点拨:
CODE:
--$|   toggles between 1 and 0. It is this variable's behavior when (--$| or $|--)
       $| is initially 0. (NOTE: this behavior doesn't happen with ++$| or $|++).
-l      chomps the line input and, for when --$| == 1, prints with $\ = $,
      ($, is by default the empty string). When --$| == 0, prints with $\ = $/
       ($/ is by default = "\n").
-p     applies 'print()' as the last statement in the implicit 'while( ... )'  loop
So. in effect, on the first line in, chomps the line. Then, since $|==1 in the first
iteration, prints with a line end equal to $, (by default, the empty string).
In the next line, $| will equal 0, so the print will end with $/ (default value of "\n")

谁要是在我的组里用这种代码,我一定用刀劈他!
http://bbs2.chinaunix.net/viewthread.php?tid=1622036

[ Last edited by jjdg on 2010-1-4 at 21:08 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nebulaly

木虫 (著名写手)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
波不动(金币+1,VIP+0):感谢讨论交流!有时候例如微软面试也会出一些类似的题目,但答得“差”,有时候反而是微软要的。 12-5 23:01
这个叫杂技

如果是开发产品,最好的写法永远是第一种
2楼2009-12-05 22:48:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wangen994

荣誉版主 (著名写手)

将军

这个是真看不懂,自己知道的太少了
3楼2009-12-05 23:03:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

波不动

木虫 (正式写手)

Wave No Move


小木虫(金币+0.5):给个红包,谢谢回帖交流
引用回帖:
Originally posted by wangen994 at 2009-12-5 23:03:
这个是真看不懂,自己知道的太少了

我也一样,呵呵。
端好自己的碗,吃好自己的饭。
4楼2009-12-05 23:06:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

runmiao

铁杆木虫 (正式写手)


小木虫(金币+0.5):给个红包,谢谢回帖交流
这个只能秀一下,咱还是老老实实做软件蓝领,写的代码别人能立马看懂,不用太多注释。
5楼2009-12-12 10:49:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 yalefield 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 v9tggjlwd0 2026-05-15 3/150 2026-05-16 17:37 by j6b2pdz07o
[有机交流] 求有机合成大神指点三硫酸乙烯酯(CAS:2793408-99-6)的合成路线 30+3 Leekmid 2026-05-13 10/500 2026-05-16 16:37 by czyzsu
[有机交流] 如何实现卤原子转化 10+3 BT20230424 2026-05-15 5/250 2026-05-16 16:20 by czyzsu
[考研] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +5 cjf4bx70cj 2026-05-14 6/300 2026-05-16 16:17 by 0i5p09z61n
[硕博家园] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 k37jurhrau 2026-05-16 3/150 2026-05-16 13:57 by vcdazktkjx
[论文投稿] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 xx7gd5zq4e 2026-05-15 5/250 2026-05-16 12:24 by h3oerqvkv9
[考博] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +4 l7k6xnh0yc 2026-05-14 4/200 2026-05-16 11:36 by h3oerqvkv9
[硕博家园] 申请博士 +3 呃?呃 2026-05-15 3/150 2026-05-16 11:01 by a4742549
[基金申请] 这年头没有找到涵评专家,还有中面上的可能吗 +11 dd921ww 2026-05-12 13/650 2026-05-16 09:16 by Howard28
[找工作] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 l7k6xnh0yc 2026-05-14 3/150 2026-05-16 01:49 by k37jurhrau
[论文投稿] 有带发论文的吗 +4 山楂之术 2026-05-09 4/200 2026-05-15 15:40 by 妹子不好惹
[基金申请] 青C资助名额大幅增加! +11 西葫芦炒鸡蛋 2026-05-13 15/750 2026-05-15 14:36 by ambravo
[基金申请] 精华III评审感受-评审感受-评审感受 +14 ferrarichen 2026-05-11 18/900 2026-05-15 11:12 by cmhchen
[教师之家] 教学课件你会给同学吗 +8 硕士研究生吗 2026-05-13 8/400 2026-05-14 22:23 by 常规沥青
[考博] 26应届毕业生考博求助 +3 wo一定上岸 2026-05-13 3/150 2026-05-14 21:47 by 明海天涯
[基金申请] 重磅!青年科学基金项目(C类)资助增幅预计超过50% +5 水和泥不是水泥 2026-05-13 7/350 2026-05-14 20:57 by 水和泥不是水泥
[有机交流] 求助2,4-二氯-5-嘧啶甲醛的合成方法 20+3 光吃不拉 2026-05-14 5/250 2026-05-14 20:15 by 一切都是空工
[高分子] 本人最近太闲了,谁有问题可以提,每天会统一回复 +8 一切都是空工 2026-05-12 19/950 2026-05-14 20:03 by 一切都是空工
[考博] 材料类只有一篇综述能申博么 +4 乐逍遥谷 2026-05-13 4/200 2026-05-14 12:05 by zhyzzh
[基金申请] 请问大佬b0816评完了吗 +3 市民华南虎 2026-05-12 7/350 2026-05-14 07:41 by 市民华南虎
信息提示
请填处理意见