У меня есть небольшая проблема в Perl. В принципе, я делаю что-то вроде этого:Perl: как мне вернуть undef в список?
sub myFunction
{
return (&myOtherFnA(),&myOtherFnB(),&myOtherFnC());
}
sub myOtherFnA() {return 'A';}
sub myOtherFnB() {return undef;}
sub myOtherFnC() {return 'C';}
моя проблема: когда myOtherFnB() возвращает UNDEF, я хочу список, который имеет UNDEF в качестве 2-го элемента. Но когда myOtherFnB() делает это, я просто получаю список из 2-х элементов: myOtherFnA() и myOtherFnC(). Я получаю:
('A', 'C')
, но я хочу получить:
('A', UNDEF, 'C')
Что синтаксис мне нужно использовать, чтобы остановить Perl от удаления return myOtherFnB() из списка, если он undef и на самом деле просто положить элемент undef в список?
Если я извлекаю амперсанды в определениях подразделов (так он компилирует), он работает, как вы говорите, хочу этого. Можете ли вы опубликовать некоторый рабочий код, который показывает эту проблему? –
Да, покажите, как вы на самом деле строите список в myFunction. то, что вы показываете, работает так, как вы хотите. – ysth
Не исправляйте проблемы в своем исходном сообщении :: это делает бессмыслицу решений, которые были написаны, чтобы помочь вам – Borodin