Perl 板


LINE

※ 引述《par4322 (Queeny)》之铭言: : if(-e $arrfile){ : @fileheader=`awk '{print \$1}' $arrfile`; : @Parr=`awk '{print \$2}' $arrfile`; 这里也可以不用 awk,像我自己就看不懂 awk 程式码 另外,fileheader 和 parr 似乎是连带一起的 可以考虑做成一个 list of list my @filelists; my $arrfile = 'arrfile'; open my $FH, "<", $arrfile or die "$!\n"; while (<$FH>) { chomp; my @a = split /\s+/; push @filelists, \@a; } close $FH or die "$!\n"; : for($j=0;$j<@fileheader;$j++){ : chomp($fileheader[$j]); : chomp($Parr[$j]); : $file=$fileheader[$j]=grep'A' $arrfile |`awk '{print $0}' $arrfile`; : &auto($file,$Parr[$j]); 这里可能误会 grep 的用法,查一下 perldoc -f grep 可看到 grep BLOCK LIST grep 接收一个 list,然後将所有条件为真的元素传回为一个 list 所以不是用 scalar 去接,这样会变成 list 的数目 如果已经用回圈了,就不需要用 grep foreach my $e (@filelists) { my $s = substr $e->[0], 13, 1; if ($s eq 'A') { auto($e->[0], $e->[1]); } } 如果用 grep,可能的写法如下 my @list_a = grep { substr($_->[0], 13, 1) eq 'A' } @filelists foreach my $e (@list_a) { auto($e->[0], $e->[1]); } 只是在这里,跟直接用回圈比起来,没省下多少程式码 : $file1=$fileheader[$j]=grep'B' $arrfile |`awk '{print $0}' $arrfile`; : $file2=$fileheader[$j]=grep'C' $arrfile |`awk '{print $0}' $arrfile`; : &autoH($file1,$file2,$Parr[$j]); : .......... : } 这里的问题最大 看起来是要两层回圈 但无法确定你 autoH 第三个引数要跟着 file1 还是 file2 假设第三个引数要跟着 file1,可能的写法如下 foreach my $e1 (@filelists) { my $s1 = substr $e1->[0], 13, 1; if ($s1 eq 'B') { foreach my $e2 (@filelists) { my $s2 = substr $e1->[0], 13, 1; if ($2 eq 'C') { autoH($e1->[0], $e2->[0], $e1->[1]); } } } } 但是这里可能还要想一下,确定结果是不是真的如同预期 有可能需要重写过 autoH 也不一定 : sub auto {......... : sub autoH {...........



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 59.105.57.132
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Perl/M.1408689610.A.3FF.html
1F:推 cutekid: 推认真解答(Y) 08/22 16:28
2F:推 abliou: 推认真 08/24 09:55
3F:推 par4322: 大推认真 感谢~(y) 08/24 19:38
※ 编辑: Neisseria (60.251.46.166), 12/24/2018 16:23:43







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灯, 水草

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

TOP