加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何处理基于SCALAR的Perl类的属性?

发布时间:2020-12-16 09:49:21 所属栏目:安全 来源:网络整理
导读:在Perl中,很容易祝福hashref并使用它来存储和读取属性: package MyPackage;use strict;use warnings;sub new { bless {},__PACKAGE__;}sub SomeProperty { my $self = shift; if (@_) { return $self-{SomeProperty} = shift; } $self-{SomeProperty};}# Or
在Perl中,很容易祝福hashref并使用它来存储和读取属性:

package MyPackage;
use strict;
use warnings;

sub new {
    bless {},__PACKAGE__;
}

sub SomeProperty {
    my $self = shift;
    if (@_) {
        return $self->{SomeProperty} = shift;
    }
    $self->{SomeProperty};
}

# Or even like this to be able to call $obj->OtherProperty = $x;

sub OtherProperty : lvalue {
    my $self = shift;
    $self->{OtherProperty};
}

但是,我已经看到一些类(来自不同的Perl模块),当转储时,显示一个简单的标量祝福:

$obj = bless( $8756489,'Some::Package' );

然而,他们有方法和属性.我理解的方法,当询问祝福的$object->名称时,将调用包可以调用的任何子例程.我不理解的部分是它们如何存储属性.这些物业存放在哪里?

有几次他们接受$obj-> property = $x或$obj-> property($x)之类的东西,并且可以独立于同一个Class的其他实例.这些物业存放在哪里?

我知道这实际上取决于类的底层实现,它正在做什么或它正在与之交互,并且实际上可以多次回答这个问题(例如,对象只是在某个地方与另一个对象或连接接口,只发送或向它求价值).

但是,如果有一种基于标量的对象存储属性的方法(比如Perl中的类结构的不同概念或方法),我真的很想知道它.

提前感谢您的任何意见!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读