perl,一个哈希,输出重复的问题

@a=qw/hehehahazz123456&&hehe/;$count{$_}++foreach@a;foreach$word(sort@a){print"$wordh... @a = qw /hehe haha zz 123 456 && hehe/;
$count{$_}++ foreach @a ;
foreach $word (sort @a){
print "$word has been appreared $count{$word} times! \n"
}
运行程序:
root@luis-VirtualBox:~# ./perl.pl
&& has been appreared 1 times!
123 has been appreared 1 times!
456 has been appreared 1 times!
haha has been appreared 1 times!
hehe has been appreared 2 times!
hehe has been appreared 2 times!
zz has been appreared 1 times!

那个hehe打印了两次,我不想要重复输出,能不能修改程序只打印一次hehe ? (保持@a中的两个hehe别动)
展开
 我来答
willshdanvis
2012-04-12 · TA获得超过1018个赞
知道大有可为答主
回答量:2042
采纳率:100%
帮助的人:1361万
展开全部
@a = qw /hehe haha zz 123 456 && hehe/;
$count{$_}++ foreach @a ;
foreach $word (sort keys %count){ #--这里如果你遍历数组那么还是会输出重复,遍历hash就只有唯一的key
print "$word has been appreared $count{$word} times! \n"
}
百度网友e23df9c6a5
2012-04-11 · TA获得超过1082个赞
知道小有建树答主
回答量:340
采纳率:0%
帮助的人:340万
展开全部
foreach $word (sort keys %count){
print "$word has been appreared $count{$word} times! \n"
}
把你的输出改成这样不就好了。否则你基本就没有用hash啊。。。hash的好处不就是同名的只会出现一次么。直接输出你的hash %count就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
unixgiant
2012-04-12
知道答主
回答量:12
采纳率:0%
帮助的人:1.5万
展开全部
还是再加个计数器%temp吧:

#!/usr/bin/perl

use strict;
use warnings;

my %count = ();
my %temp = ();

my @a = qw /hehe haha zz 123 456 && hehe/;

$count{$_}++ foreach @a ;

foreach my $word (sort @a){
if(! $temp{$word}){
print "$word has been appreared $count{$word} times! \n";
$temp{$word}++;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式