如何在不使用Perl中的类对象的情况下访问方法?

时间:2016-09-28 12:35:29

标签: perl oop

假设ClassA有method1();在main方法中我们想要访问method1()而不创建ClassA的对象。

2 个答案:

答案 0 :(得分:2)

如果它是一种类方法,你可以像下面这样调用它:

use ClassA;
ClassA->method1();

示例:

<强> ClassA.pm

package ClassA;

sub welcome_message{
    my $class = shift;
    my $name = shift;
    print "Hello $name";
}

1;

<强> test.pl

#!/usr/bin/perl
use strict;
use warnings;
use ClassA;
my $name = 'John Doe';
ClassA->welcome_message($name);

请浏览perlootut

答案 1 :(得分:2)

基本上有两种方法。最常见的类型是对象方法 - 在对象上调用的方法(即类的实例)。在绝大多数情况下,调用没有对象的对象方法将完全没有意义,因为它需要从对象读取数据或将数据写回对象。

但是,也有类方法 - 在类上调用的方法。对象构造函数(通常称为new())可能是类方法中最着名的示例。您可以使用类名,箭头运算符和方法名称来调用类方法。

Some::Class->some_method;

您也可以将参数传递给方法。

Some::Class->some_method($some, $parameters);

这一切都很模糊,但是如果你不知道自己在做什么以及为什么要在没有对象的情况下调用方法,那么就不可能再有任何帮助。

更新:我刚刚意识到这是我在SO上的第1000个答案: - )