Мы все должны быть знакомы с проблемами, связанными с prototypes в Perl. Вот две большие команды:
- они не работают как прототипы на других языках, поэтому люди неправильно понимают их.
- они не применяются ко всем способам вызова подпрограммы.
Второй пункт - тот, который мне сейчас интересно.
Я знаю о двух способах обхода/обхода/игнорирования принудительного исполнения прототипа при вызове подпрограммы:
- Вызовите sub как метод.
Foo->subroutine_name();
- Вызовите sub с ведущей
&
сигил.&subroutine_name();
Есть ли другие интересные случаи, которые я пропустил?
Udpate:
@brian d foy, я особенно не хочу уклоняться от прототипов, но я задавался вопросом: "Сколько способов сделать это?" Я задаю этот вопрос из любопытства.
@jrockway, я согласен с вами, и я считаю, что вы более подробно и более кратко описали мою первую мысль о проблемах с прототипами, которые люди неправильно понимают. Возможно, проблема заключается в ожиданиях программистов, а не в функции. Но это действительно философский вопрос, который я не хочу иметь.