2015-10-18 2 views
3

Хорошо, я знаю, что я всегда могу обернуть встроенную функцию в sub:Как передать встроенную функцию в качестве аргумента обратного вызова?

function_taking_callback(sub { return getpwuid($_[ 0 ]); }); 

... но я считаю, что трудно поверить, что Perl требует такого рода вещи.

+2

'function_taking_callback (sub {getpwuid (@_)});' короче. – rightfold

+0

@Elyse, но не эквивалент. – Dre

+1

Использовать анонимную подставку в качестве обертки. Таким образом, если есть ошибка, вы получите полезный номер строки в стеке. – Miller

ответ

6

На Perl 5.16 (2012) и новее вы можете ссылаться на него как \&CORE::getpwuid - см. Документацию для CORE.

На старших перлах существует синтаксис CORE::, но нет фактического элемента sub на CORE::getpwuid, чтобы получить ссылку, поэтому ваша вспомогательная оболочка - лучший способ пойти.

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