sub errco {
foreach $item (@eve)
{
if ($_[0] ne $item)
{
push(@tza,$_[0]);
}
}
Чёт не выходит каменный цветок. Судя по дебагу при определении массив в undef, туда записывается null, и при сравнении он никогда не появляется, отсюда в массив заносится весь список.
Да ну?
Массив @_ действительно содержит аргументы переданные функции. А как правильно обратиться к элементу массива в perl?
Как раз $_[0] это корректно, а @_[0] - некорректно. Попробуйте запустить такой скрипт с ключем -w, получите сообщение
(perl -w) писал(а):Scalar value @_[0] better written as $_[0]
А @_[0] - это не элемент массива, а срез массива. Но делать срез из одного элемента смысла мало, обычно пишут что-то вроде @_[0, 3, 6] или @_[0..4] и т.п.