当前位置:  开发笔记 > 编程语言 > 正文

有多少种方法可以调用子程序并忽略它在Perl中的原型?

如何解决《有多少种方法可以调用子程序并忽略它在Perl中的原型?》经验,为你挑选了1个好方法。

我们都应该熟悉Perl中与原型相关的问题.以下是两个大佬:

它们不像其他语言的原型那样工作,所以人们会误解它们.

它们不适用于调用子程序的所有方法.

第二项是我现在很好奇的一项.

我知道有两种方法可以在调用子程序时颠覆/解决/忽略原型强制执行:

将sub调用为方法. Foo->subroutine_name();

用一个主要的&印记调用潜艇.&subroutine_name();

还有其他有趣的案例我错过了吗?

UDPATE:

@brian d foy,我并不特别想逃避原型,但我想知道"有多少种方法可以做到这一点?" 出于好奇,我问这个问题.

@jrockway,我同意你的观点,我相信你有更明确,更简洁地描述了关于原型问题的第一点,人们会误解它们.也许问题在于程序员的期望,而不在于功能.但这确实是一个我不想要的哲学问题.



1> derobert..:

通过子程序引用调用它.

sub foo($) { print "arg is $_[0]\n" }
my $sub = \&foo;
$sub->();

在Perl看到原型之前调用它(很重要,因为perl在使用前不会让你声明subs):

foo();
sub foo($) { print "arg is $_[0]\n" }


有趣的是,`print prototype($ sub),"\n";`仍然打印"$"(正确的原型).
推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有