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/m.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