小编Ric*_*gio的帖子

当我模块化我的代码时,"不是ARRAY引用"错误开始发生

我正在模块化我的代码,但当我移出sub它的原始模块时,我收到以下错误:

Couldn't load application from file "foo.pl": Not an ARRAY reference at D.pm line 10.
Run Code Online (Sandbox Code Playgroud)

这是原始文件.这样就可以了:

FormerC.pm:

package FormerC;

use strict;

my %my_hash = ( key => 'value' );
my @my_array = qw( some strings inside array );

sub problematic_sub {
  my ($hash_ref, $array_ref) = @_;

  my @an_array = @$array_ref;

  return \@an_array;
};

sub uses_problematic_sub {
  problematic_sub(\%my_hash, \@my_array);
};

uses_problematic_sub();

1
Run Code Online (Sandbox Code Playgroud)

这是两个新模块.有了这些我得到错误:

D.pm:

package D;

use strict;

sub new { bless {}, shift };

sub problematic_sub …
Run Code Online (Sandbox Code Playgroud)

perl perl-module

2
推荐指数
1
解决办法
116
查看次数

标签 统计

perl ×1

perl-module ×1