У меня есть требование, когда мне нужно выполнить инструкцию внутри цикла для первого вхождения переменной.
Например: данный массив my @rand_numbers = qw(1 2 1 2 3 1 3 2);
Я знаю, что есть только 3значения, присутствующие в массиве (т. е. в данном случае 1,2 и 3)
Я хочу напечатать что-нибудь (или сделать что-то) при первой встрече каждого значения (только при первой встрече и никогда не повторять это для последовательной встречисоответствующего значения).
Ниже приводится один из подходов
my @rand_numbers = qw(1 2 1 2 3 1 3 2);
my $came_across_1=0, $came_across_2=0, $came_across_3=0;
for my $x(@rand_numbers) {
print "First 1\n" and $came_across_1=1 if($x==1 and $came_across_1==0);
print "First 2\n" and $came_across_2=1 if($x==2 and $came_across_2==0);
print "First 3\n" and $came_across_3=1 if($x==3 and $came_across_3==0);
print "Common op for -- $x \n";
}
Есть ли способ достичь вышеуказанного результата без такой переменной, как $came_across_x
?[то есть с помощью оператора триггера?]
Спасибо, Ранджит