【发布时间】:2021-04-08 13:48:26
【问题描述】:
我正在学习 perl,并且有一个与引用有关的问题。 我正在处理函数 get_id。
如果我返回$self->{_id},我将得到两个无法运行的数组地址(c)。
据我了解,$a 是引用,@{$a} 是数组,@{$a}[0] 会返回值 0?
这是我第一次在stackoverflow上发布问题,因此解释可能不够清楚,对此感到抱歉。
@a1 = [0]
@a2 = [1]
my self{
_id = [\@a1,\@a2]; } //given
sub get_id(){
my $self = shift;
return $self->{_id};
}
sub print{
...
my $a = $obj -> get_id();
my $b = @{$a}[0] * 100; // c (given)
..
}
【问题讨论】:
-
你代码的第一条语句其实是
@a1 = [0] @a2 = [1] my self { ... }。如果您尝试运行它会产生一大堆错误,因为您的行不以分号结尾。//是 Perl 中的运算符,而不是注释。my self { ... }不是有效的声明。你永远不应该发布你实际上没有运行的代码,因为它只会浪费人们的时间。您发布的代码应该是可运行的,并且应该能证明您的问题。 -
总是使用
use strict; use warnings;