Perl 板


LINE

那可能要先定义一下甚麽叫做一行了 假设阵列格式很简单 到是有办法写出"伪一行" @data = ('ID2*1,2,3*2,3,4*','ID3**2*','ID4***' ) ; sub{ (length($_[1])+length($_[2])==0)? print "$_[0]\n" : sub{ print "$_[0] $_\n" for @_[1..$#_] }->(($_[0]), (map{'A'.$_}(split',',$_[1])), (map{'B'.$_}(split',',$_[2]))) }->(/(.+)\*(.*)\*(.*)\*/) for @data ; 我是觉得 有点难读 如果三个月後哪个倒楣鬼要改会有点麻烦 (套句Larry的话 三个月後的倒楣鬼通常是自己) ※ 引述《AntaresStar ()》之铭言: : 这样就没办法那麽少行啦... : my @a = split /\*/; : my $id = shift @a; : $a[0] =~ s/(\d+)/A$1/g; : $a[1] =~ s/(\d+)/B$1/g; : @a = grep {/\S/} map {split /,/} @a; : @a ? map {print "$id $_\n"} sort {substr($a,1)<=>substr($b,1)} @a : : print "$id\n"; : 看有没有人有兴趣弄出更少行的 XD : ※ 引述《yalent ( 心只有你 )》之铭言: : : 非常感谢您的回答~ : : 目前又遇到一个问题,在原始档的*之中, : : 都会有一组数字如下的1,2,3等 : : ID2*1,2,4*2,3,4* : : ID3**2* : : ID4*** : : 但是我想将第一组数字1转成 A1,2转成 A2,4转成 A4 : : 至於第二组数字的2 转成B2,3转成 B3,4转成 B4 : : 之後再对内容作排序 : : 想将内容转为 : : ID2 A1 : : ID2 A2 : : ID2 B2 : : ID2 B3 : : ID2 A4 : : ID2 B4 : : ID3 B2 : : ID4 : : 那这部份取代的写法,我要怎麽写呢? --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.195.44.131
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Perl/M.1397448411.A.EC9.html ※ 编辑: abliou (123.195.44.131), 04/14/2014 12:19:13
1F:→ cutekid:依我理解: 'ID2*1,2,3*2,3,4*' 04/14 12:18
2F:→ cutekid:原 po 要的应该是: 04/14 12:20
3F:→ cutekid:ID2 A1 04/14 12:21
4F:→ cutekid:ID2 A2 04/14 12:21
5F:→ cutekid:ID2 B2 04/14 12:21
6F:→ cutekid:ID2 A3 04/14 12:21
7F:→ cutekid:ID2 B3 04/14 12:21
8F:→ cutekid:ID2 B4 04/14 12:21
9F:→ cutekid:sort by numerical , alphabetical(A,B) 04/14 12:23
原来是忘了排序 XDDDD sort一下吧 sub{ (length($_[1])+length($_[2])==0)? print "$_[0]\n" : sub{ print "$_[0] $_\n" for @_[1..$#_] }->(($_[0]), sort{@{[split'',$a]}[1]<=>@{[split'',$b]}[1]}((map{'A'.$_}(split',',$_[1])), (map{'B'.$_}(split',',$_[2])))) }->(/(.+)\*(.*)\*(.*)\*/) for @data ; ※ 编辑: abliou (123.195.44.131), 04/14/2014 12:29:30
10F:推 AntaresStar:没想过还有sub这招 XD 04/14 20:24
11F:推 cutekid:sub 这招好厉害,从没看过。不知道哪边有相关介绍,请指教 04/15 09:40
12F:→ abliou:老实说 第一次看到这种用法是在这版上看到的 忘记是Lilo 04/16 15:40
13F:→ abliou:还是cindy的文章了 这可能要请教他们这些高手 04/16 15:41
14F:推 cutekid:谢 abliou 大 :) 04/16 15:44
15F:推 yalent:感谢您~ 04/17 23:44
16F:推 CindyLinz:(惊) 04/18 23:42
17F:→ CindyLinz:其实是写 javascript 的常用写法.. XD 04/18 23:42
18F:→ CindyLinz:(function(){....})(); 用在 js 有制造 scope 的效果 :p 04/18 23:42







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:WOW站内搜寻

TOP