我是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();
Run Code Online (Sandbox Code Playgroud)
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;
Run Code Online (Sandbox Code Playgroud)
我假设问题是$ self所指的引用并没有被祝福,但我不知道如何做到这一点.任何帮助,将不胜感激.
谢谢
你忘了实际上定义$self的test; 它不会自动为您服务.这就是为什么你应该总是放入use warnings; use strict;每个Perl源文件:这样编译器会告诉你这些错误.(此外,还有没有点以书面形式sub new()代替sub new,同样的test,函数的原型不仅是错误的,但将是平出时,忽略new被用作一种方法,即,如何new应该被使用.)
| 归档时间: |
|
| 查看次数: |
160 次 |
| 最近记录: |