2015-12-23 6 views
-1

У меня есть два массива ввода:Perl: Разница между двумя значениями индекса массива

@a = (1, 2, 3, 4, 5); 
@b = (2, 2, 3, 6, 8); 

Выход:

печати 1,4,5 разница в первом массиве.
печать 2,6,8 разница во втором массиве.

Я пробовал это, но у меня нет никакого модуля для использования.

use Array::Utils qw(:all); 

@a = (1, 2, 3, 4, 5); 
@a = (2, 2, 3, 6, 8); 

# get items from array @a that are not in array @b 
my @minus = array_minus(@a, @b); 
print @minus;exit; 

Я хочу напечатать разницу между значениями индекса.

+0

Является ли это домашнее задание? Пожалуйста, отредактируйте свое сообщение, чтобы включить код, который вы написали, чтобы решить эту проблему. StackOverflow не является службой записи кода. – Arc676

ответ

3
my @diff_indexes = grep { $a[$_] != $b[$_] } 0..$#a; 

my @a_diff_values = @a[ @diff_indexes ]; 
my @b_diff_values = @b[ @diff_indexes ]; 

Ссылка: grep, array slice

+0

спасибо, чувак., Он работает. – depsai

Смежные вопросы