gpt4 book ai didi

perl - 我可以在Perl中动态指定的类中访问静态方法吗?

转载 作者:行者123 更新时间:2023-12-04 03:00:05 25 4
gpt4 key购买 nike

是否可以在Perl中动态指定一个类并在该类中访问静态方法?这不起作用,但是说明了我想做的事情:

    use Test::Class1;  
my $class = 'Test::Class1';
$class::static_method();

我知道我可以这样做:
    $class->static_method();  

并忽略传递给static_method的类名,但是我想知道是否有更好的方法。

最佳答案

是的!严格执行此操作的方法是使用 can

package Foo::Bar;
use strict;
use warnings;

sub baz
{
return "Passed in '@_' and ran baz!";
}

package main;
use strict;
use warnings;

my $class = 'Foo::Bar';

if (my $method = $class->can('baz'))
{
print "yup it can, and it ";
print $method->();
}
else
{
print "No it can't!";
}
can返回对该方法的引用,即undef/false。然后,您只需要使用dereferene语法调用该方法即可。

它给:

> perl foobar.pl
是的,它可以,并且传入''并运行baz!

关于perl - 我可以在Perl中动态指定的类中访问静态方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1634042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com