perl - 如何将数组的重复元素推送到新数组perl

标签 perl

谁能告诉我如何将数组的重复元素推送到新数组? 这是我到目前为止所拥有的,我想再次将重复的元素保留到一个新数组中。

%seen = ();
@uniq = ();
foreach $item (@list) {
    unless ($seen{$item}) {
        $seen{$item} = 1;
        push(@uniq, $item);
    }
}
print "@unique\n";

最佳答案

总是以 use strict;use warnings; 开始你的脚本。

use strict ;
use warnings ;

my @list = ( 1 .. 10 , 2 , 5 , 6 ) ;

my %seen = ();
foreach my $item (@list) {
  $seen{$item}++ ;
}

my @uniq = grep { $seen{$_} == 1 } keys %seen ;
my @not_unique = grep { $seen{$_} > 1 } keys %seen ;

简单地计算散列中元素的每次出现,然后使用 grep。

关于perl - 如何将数组的重复元素推送到新数组perl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11427680/

相关文章:

perl - 在 PERL 中调用 restful web 服务时如何包含 SSL 客户端证书

macos - 在 Intune 中推送 Apple 远程桌面脚本时,“"Can' t 在未定义值上调用方法 "print"”错误

perl - 如何在另一个perl脚本中调用有8个参数的子例程

windows - 我不明白为什么在 Perl 中使用 Parallel::ForkManager 时所有 fork 的子节点不会同时启动

windows - 为什么 Perl 的 POSIX::strftime %F 说明符在 Windows 上不起作用?

perl - 将 "file name"从文本文件传递到命令行,其中文件的每一行都是文件名

perl - 当我想打印到哈希键中的句柄时,为什么会出现语法错误?

multithreading - 如何在线程之间共享 LWP::UserAgent 对象

perl - 我可以在以下perl脚本中使用qq或q代替qw吗?

regex - grep 与 Perl。我应该修改它来工作,还是应该用 Perl 代码替换它?