0

次のような 2 つの配列が呼び出さ@these_conf_users @these_account_usersれます。

adrian bruce malcolm

brom testwp sajay bruce ast domainte adrian rahul freddy onetwo

目的は、要素が最初の配列に存在する場合、2 番目の配列から要素を削除することです。この例を使用して、これは私がしたことです:

my %sorter;
@sorter{ @these_conf_users } = ();
@tester = grep ! exists $sorter{$_}, @these_account_users;
print "@these_conf_users";
print "@these_account_users";
print "@tester";

ただし、これは重複する要素を除外するものではありません。出力は次のとおりです。

adrian bruce malcolm
brom testwp sajay bruce ast domainte adrian rahul freddy onetwo
brom testwp sajay bruce ast domainte adrian rahul freddy onetwo

ここで何が欠けていますか?

4

1 に答える 1

1

あなたのコードは正常に動作します:

use strict;
use warnings;

my @these_account_users = qw/ adrian bruce malcolm /;
my @these_conf_users = qw/ brom testwp sajay bruce ast domainte adrian rahul freddy onetwo /;

my %sorter;
@sorter{ @these_conf_users } = ();
my @tester = grep ! exists $sorter{$_}, @these_account_users;

print "@these_conf_users\n";
print "@these_account_users\n";
print "@tester\n";

出力

brom testwp sajay bruce ast domainte adrian rahul freddy onetwo
adrian bruce malcolm
malcolm
于 2013-10-12T15:04:26.437 に答える