我能够在我拥有 sudo 功能的本地机器上运行以下代码”
#!/usr/bin/env perl
package Cat
{
use Moose;
has 'name', is => 'ro', isa => 'Str';
}
my $test_obj = Cat->new(name => "kitty");
print $test_obj->name()."\n";
结果 :
$perl Cat.pl
kitty
但是当我在没有 sudo 的其他机器上运行完全相同的代码时,我收到以下错误:
syntax error at Cat.pl line 5, near "{
"
Execution of Cat.pl aborted due to compilation errors.
为什么会这样?
我在所有三台机器上使用 cpanm 安装了模块,一台使用 sudo,两台没有 sudo(我在本地安装它们)。perl 的版本是:
machine 1(worked, has sudo) : (v5.14.2) built for cygwin-thread-multi-64int
machine 2(did not work, no sudo previlage) : perl, v5.10.1 (*) built for x86_64-linux-thread-multi
machine 3(did not work, no sudo previlage) : v5.10.0 built for x86_64-linux-thread-multi
所以它似乎与共享库或其他东西有关,但我无法弄清楚为什么它不能在两台机器上运行。这是一个已知的问题?