Perl 板


LINE

※ 引述《loyuchu1539 (爆走原始人)》之铭言: : 小弟是Perl 新手 由於工作需要,才开始学习perl 目前预到两个问题 : 1.撷取文字党片段到一阵列 : Ex: 文字档(map.txt)如下 : Jack : AA_map 1 : BB_map 1 : CC_map 0 : Michael : AA_map 0 : CC_map 0 : DD_map 1 : Ruby : DD_map 1 : EE_map 0 : . : . : 请问小弟该如何文字档中的Michael至Ruby中间的三行取出,存至@map 呢? 蛮常处理这种状况,抛砖引玉一下,希望有更好的做法可以学 XD 我的方法其实蛮直觉的,前提是格式内容要够规律,不然就不适用了; 方法就是设一个变数去控制是否开始储存txt的内容,然後如果符合要储存的条件, EX: Michael和Ruby中间,就把刚才存的 @temp 丢进去 @map 里面,以下为程式码: my $sw = 0; my @map=(); my @temp=(); open inputF, "map.txt"; while(<inputF>){ chomp; if($sw==0 && $_ eq "Michael"){ $sw=1; @temp=(); }elsif($sw==1 && $_ !~ /^\w+_\w+\s+\d+$/){ $sw=0; if($_ eq "Ruby"){ push @map, @temp;} }elsif($sw==1){ push @temp, $_; } } close inputF; : 2.存一个庞大的文字档案分类至一个hash : 以上头的文字档为范例 : 小弟该如何将这个文字档 以各别名字存为一个hash呢? : 例如存成: : $hash{Jack} = : AA_map 1 : BB_map 1 : CC_map 0 : 另外一问..若从hash内叫出来 想要判断内容,请问各位会如何撰写呢? : 比如说 判断$hash{Jack} 内 AA_map 值是否为1 是则print出 AA_map, : 若不是,则继续判断BB_Map 是否为1,印出 BB_map 直到判断到某个XX_map 为1为止.. : 写得有点智障...但希望看得懂得大大能指教一下@@... 综合你要储存跟判断,我的做法的话用 reference 的方式把值(AA_map 1)存成 hash, 再把它塞进外围的 %hash,这样如果你要知道 Jack 的 AA_map 是 0 还是 1, 你可以用 $hash{'Jack'}{'AA_map'} 得到 1,以下为 code (其实只有小改上面的 code) my %hash=(); my $name=''; open inputF, "map.txt"; while(<inputF>){ chomp; if($_ =~ /^(\w+_\w+)\s+(\d+)$/){ my %temp = defined($hash{$name})? %{$hash{$name}}:(); $temp{$1} = $2; $hash{$name} = \%temp; }else{ $name = $_; } } close inputF; 希望有帮助到原PO ^_^ --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 150.117.56.246
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Perl/M.1460643087.A.7D0.html ※ 编辑: Rnsras (150.117.56.246), 04/15/2016 01:44:50







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

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

TOP