Class::Struct error: Can't locate object method
Class::Struct error: Can't locate object method
为了简化一些现有的工具,我想用一个结构体数组替换几个数组。
所以我做了一个简单的示例代码来测试结构的创建。使用的代码如下:
use strict;
use warnings;
#package Net_Node;
use Class::Struct Net_Node => [host => '$', access => '$', pass => '$'];
#struct( host => '$', access => '$', user => '$', pass => '$' );
my $example = new Net_Node;
$example->host('dir ip');
$example->access('TELNET');
$example->user('hjack');
$example->pass('buttstalion');
print "\n\n\n";
print "${example->host}\n";
print "${example->access}\n";
print "${example->pass}\n";
问题是当我尝试执行此脚本时,出现此错误:
Can't locate object method "host" via package "example" (perhaps you forgot to load "example"?) at test_2.pl line 15.
你能帮我看看我需要更正什么吗??
正在阅读 Class::Struct EXAMPLES,看来您需要调用 struct
函数:
use warnings;
use strict;
use Class::Struct;
struct(Net_Node => [host => '$', access => '$', pass => '$']);
my $example = Net_Node->new();
$example->host('dir ip');
$example->access('TELNET');
$example->pass('buttstalion');
print $example->host, "\n";
print $example->access, "\n";
print $example->pass, "\n";
这会打印:
dir ip
TELNET
buttstalion
此外,似乎 $example->host
不会在双引号内插入。
您的代码在结构访问器中存在错误,并且您在 Class::Struct
定义
中遗漏了 'user'
#!/usr/bin/env perl
use strict;
use warnings;
use feature 'say';
#package Net_Node;
use Class::Struct Net_Node => [host => '$', access => '$', user => '$', pass => '$'];
#struct( host => '$', access => '$', user => '$', pass => '$' );
my $example = new Net_Node;
$example->host('dir ip');
$example->access('TELNET');
$example->user('hjack');
$example->pass('buttstalion');
say "\n\n";
say $example->host;
say $example->access;
say $example->pass;
输出
dir ip
TELNET
buttstalion
为了简化一些现有的工具,我想用一个结构体数组替换几个数组。 所以我做了一个简单的示例代码来测试结构的创建。使用的代码如下:
use strict;
use warnings;
#package Net_Node;
use Class::Struct Net_Node => [host => '$', access => '$', pass => '$'];
#struct( host => '$', access => '$', user => '$', pass => '$' );
my $example = new Net_Node;
$example->host('dir ip');
$example->access('TELNET');
$example->user('hjack');
$example->pass('buttstalion');
print "\n\n\n";
print "${example->host}\n";
print "${example->access}\n";
print "${example->pass}\n";
问题是当我尝试执行此脚本时,出现此错误:
Can't locate object method "host" via package "example" (perhaps you forgot to load "example"?) at test_2.pl line 15.
你能帮我看看我需要更正什么吗??
正在阅读 Class::Struct EXAMPLES,看来您需要调用 struct
函数:
use warnings;
use strict;
use Class::Struct;
struct(Net_Node => [host => '$', access => '$', pass => '$']);
my $example = Net_Node->new();
$example->host('dir ip');
$example->access('TELNET');
$example->pass('buttstalion');
print $example->host, "\n";
print $example->access, "\n";
print $example->pass, "\n";
这会打印:
dir ip
TELNET
buttstalion
此外,似乎 $example->host
不会在双引号内插入。
您的代码在结构访问器中存在错误,并且您在 Class::Struct
定义
#!/usr/bin/env perl
use strict;
use warnings;
use feature 'say';
#package Net_Node;
use Class::Struct Net_Node => [host => '$', access => '$', user => '$', pass => '$'];
#struct( host => '$', access => '$', user => '$', pass => '$' );
my $example = new Net_Node;
$example->host('dir ip');
$example->access('TELNET');
$example->user('hjack');
$example->pass('buttstalion');
say "\n\n";
say $example->host;
say $example->access;
say $example->pass;
输出
dir ip
TELNET
buttstalion