免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3715 | 回复: 12
打印 上一主题 下一主题

请问,如何出去重复的数组! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-01-16 11:03 |只看该作者 |倒序浏览
有数组如下:
my $test = ["abc", "def", "kkk", "llll"];
my $next = ["abc","def","kkk","llll"];
my $third = ["aaa", "bbb", "ccc", "ddd"];
my $forth = ["mmm", "ttt", "ggg"];
my $sixth = ["abc", "def", "kkk", "llll"];
my $fifth = ["mmm", "ttt", "ggg"];
my $eight = ["mmm", "ttt", "ffff"];
my $ninth = ["aaa", "bbb", "ccc", "ddd"];

我想去除相同的数组,拿到不同的数组!
例如以上数组,最终拿到如下集合:
$test, $third, $forth,$eight

多谢

论坛徽章:
0
2 [报告]
发表于 2010-01-16 11:37 |只看该作者
xxxxxx    if @test~~@test1

论坛徽章:
0
3 [报告]
发表于 2010-01-16 11:57 |只看该作者
什么意思啊,不懂

论坛徽章:
0
4 [报告]
发表于 2010-01-16 12:48 |只看该作者
原帖由 nfwolf 于 2010-1-16 11:57 发表
什么意思啊,不懂

Perl就是这么样,你得习惯它的模式。

论坛徽章:
0
5 [报告]
发表于 2010-01-16 12:55 |只看该作者
真是无语了,不是我不理解,是perl无法理解,我执行
if @test~~@test1 {
print "OK\n" ;
}
结果告诉我语法错误

论坛徽章:
0
6 [报告]
发表于 2010-01-16 13:08 |只看该作者
用Array::Diff.
也可以借鉴ruby的做法,ruby对每个目标都内部计算一个hash值,比较2个目标是否相等时,对比其hash值即可。
当然还有其他做法。

论坛徽章:
0
7 [报告]
发表于 2010-01-16 15:52 |只看该作者

回复 #5 nfwolf 的帖子

“~~”这个叫做智能匹配符···你说有语法错误··应该是你的perl版本不是5.10···这个是5.10才新加的·

论坛徽章:
0
8 [报告]
发表于 2010-01-16 15:56 |只看该作者

回复 #5 nfwolf 的帖子

~~是智能匹配,没有错的。。
Learning perl 4 里头好像还没有,Learning perl 5版里头才加上的
你条件在前头少了括号,自然语法错误。。

if (@test~~@test1)

论坛徽章:
0
9 [报告]
发表于 2010-01-16 16:41 |只看该作者
这个都有了,我还没用过了

论坛徽章:
0
10 [报告]
发表于 2010-01-17 16:15 |只看该作者
my $test = ["abc", "def", "kkk", "llll"];
my $next = ["abc","def","kkk","llll"];
my $third = ["aaa", "bbb", "ccc", "ddd"];
# et al ...

my %dictionary;
for(($test, $next, $third)){
    my $key = join(',', @$_);
    next if($dictionary{$key});
    $dictionary{$key}=1;
    print join(", ", @$_),"\n";
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP