2013-10-12 4 views
0

я два массива под названием @these_conf_users@these_account_users которые выглядят следующим образом:Perl - удаление элементов из одного массива из другого массива

adrian bruce malcolm 

brom testwp sajay bruce ast domainte adrian rahul freddy onetwo 

Цель состоит в том, чтобы удалить элементы из второго массива, если они существуют в первом массиве , Using this example, это то, что я сделал:

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 

Что я здесь не хватает?

+0

Так почему 'PHP' тег? –

+3

отлично работает http://codepad.org/DDsqNhIP –

ответ

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 
Смежные вопросы