Допустим, у меня есть следующий код Groovy:Perl 5.8 каскадом нулевые чеки
String name = child.getParent()?.getParent()?.getName();
Обратите внимание, что getParent()
может вернуться null
, и в этом случае код продолжает работать без исключения нулевых указателей броска.
Есть ли способ сделать это четко в одной строке в Perl 5.8? Я готов написать общий вспомогательный метод для этого.
Я бегу в ситуации, когда у меня есть несколько вложенных объектов, и я с делать что-то вроде:
my $name = $child && $child->getParent && $child->getParent->getParent && $child->getParent->getParent->getName;
Да это в одной строке, но это Fugly ИМО.
Связанный: [Как обрабатывать ошибки в цепочках методов в Perl?] (Http://stackoverflow.com/questions/7064975/how-do-i-handle-errors-in-methods- chain-in-perl) – ThisSuitIsBlackNot
Здесь будет полезен язык запросов (такой как XPath или CSS-селектор). – ikegami
Неясно, нужно ли реализовать этот код Groovy в Perl, или если вы только что нашли другой способ бекаса на Perl. Вы серьезно? – Borodin