如何检查是否使用对象调用方法调用了子例程

迭戈·萨拉维亚

您可以在以下示例中使用两种语法将子例程作为方法调用。

但是您也可以不将其作为对象来调用。

#====================================================
package Opa;
sub opa{
    $first= shift;
    $second= shift;
    print "Opa $first -- $second\n";
}

package main;
# as object:
Opa->opa("uno");
opa Opa ("uno");
# not as object
Opa::opa("uno","segundo");
Opa::opa("Opa","uno");
#====================================================

从子例程内部,有一种方法可以“大致”地知道子例程收到了什么样的调用?

Chankey Pathak

您可以called_as_methodDevel :: Caller使用

use Devel::Caller qw( called_as_method );
sub opa{
    print called_as_method(0) ? 'object: ' : 'class: ';
    $first= shift;
    $second= shift;
    print "Opa $first -- $second\n";
}

输出:

object: Opa Opa -- uno
object: Opa Opa -- uno
class: Opa uno -- segundo
class: Opa Opa -- uno

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python模拟-检查是否在模拟对象中调用了方法

如何检查是否从 subscribe() 内部调用了服务方法

如何检查是否在Jest中调用了静态方法?

JUnit:检查是否调用了void方法

检查是否调用了void方法

如何检查是否对vbscript调用了参数?

如何验证在单独的go例程中调用了方法

Mockito-检查是否在对象上调用了ANY方法(已访问对象)

如何断言是否已使用nunit调用了方法

如何测试是否调用了特定方法

测试是否使用Mockito调用了方法

验证是否使用Moq调用了方法

如何检查方法是否用预期的对象调用

检查是否使用Moq从另一个方法调用了一个方法

phpunit检查是否在测试的类上调用了方法

如何在编译时检查是否调用了函数

如何检查是否通过管道输入调用了我的函数?

如何检查是否用sinon.useFakeTimers调用了clearTimeout?

如何检查线程上是否调用了Thread.Interrupt()?

如何检查是否在模糊或焦点上调用了函数?

如何检查AJAX请求是否调用了HTML内容?

如何检查 APIView 是否调用了服务函数?

如何检查我的作业是否在调度后调用了 handle 方法?

Java - 如何检查是否在运行时调用了动态实例化的方法?

检查是否使用特定关键字调用了函数

检查是否已使用酶调用了 redux 操作

检查是否使用await调用了js函数?

如何使用pytest-mock检查在单元测试中是否调用了函数?

如何使用unix shell中的参数调用子例程