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

Perl OOP祝福

发布时间:2020-12-16 06:19:05 所属栏目:大数据 来源:网络整理
导读:我是Perl的新手,我一直在通过本教程 http://qntm.org/files/perl/perl.html 无论如何,我正在努力创建一个包含矩阵的包,并将执行各种基本操作(即高斯消除,rref,反向子,确定性等).我有我的构造函数列入引用列表,但是我有一些麻烦祝福他们所以我以后可以访问它
我是Perl的新手,我一直在通过本教程 http://qntm.org/files/perl/perl.html

无论如何,我正在努力创建一个包含矩阵的包,并将执行各种基本操作(即高斯消除,rref,反向子,确定性等).我有我的构造函数列入引用列表,但是我有一些麻烦祝福他们所以我以后可以访问它们.我的代码到目前为止:

main.pl:

use strict;
use warnings;
use Matrix;

my @list = ([1,1,1],[2,2,2]);
my $matrix = Matrix->new(@list);

$matrix->test();

Matrix.pm:

package Matrix;
    sub new(){
        my $class = shift;
        my $self = [];

        my @params = @_;
        $self = @params;

        print scalar @{$self->[1]}; #just testing some output...(outputs 3 as expected)

        bless $self,$class;

        return $self;
    }

    sub test(){
        print @{$self->[1]}; #does not output anything
    }

1;

我假设问题是$self所指的引用并没有被祝福,但我不知道如何做到这一点.任何帮助,将不胜感激.

谢谢

解决方法

你忘了在测试中实际定义$self;它不会自动为您服务.这就是你应该总是使用警告的原因;用严格;在每个Perl源文件中:这样编译器就会告诉你这些错误. (另外,编写sub new()而不是sub new是没有意义的,同样也适用于测试;函数原型不仅错误,而且当new被用作方法时会被忽略,即假设是多么新的要使用的.)

(编辑:李大同)

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

    推荐文章
      热点阅读