perl 将数组的元素对应为hash的key 和value

subreadDic{my($dic)=@_;open(In,$dic);while(<In>){chomp;@item=split("",$_);$len=length... sub readDic
{
my($dic)=@_;
open(In,$dic);
while(<In>){
chomp;
@item=split(" ",$_);
$len=length($item[1]);#词语
$word=substr($_,0,$len);
$pin=substr($_,$len,length($_)-$len);#拼音
%pinyin=();
$pinyin{$word}=$pin;
}
close(In);
}
我把文件的每一行按“:”拆分后放到一个数组里,希望数组的第一个值是hash表的key,第二个值是hash表的value。执行后结果只能显示最后一行,这样写有错误么?
展开
 我来答
百度网友c9e795dda
2012-10-15 · TA获得超过5167个赞
知道大有可为答主
回答量:1128
采纳率:0%
帮助的人:1129万
展开全部
因为你的 %pinyin = () 放了在 while 入面, 所以, 每读一行, %pinyin 就被清空了一次.
照你的原意, 应该将 %pinyin=() 放在 while 之前. ( 其实不写这一行都可以 )
shenwei5566
2012-10-15 · TA获得超过610个赞
知道小有建树答主
回答量:575
采纳率:33%
帮助的人:245万
展开全部
%pinyin=();放到open后面试试。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式