Rya*_*yan 3 perl scalar struct class
#!/usr/bin/perl -w
use strict;
use warnings;
use Class::Struct;
struct System => {
Name => '$',
};
my $system = new System;
$system->Name("Server1");
my $strout1 = qq{Server is ${$system->Name}\n};
my $strout2 = "Server is \"".$system->Name."\"\n";
print $strout1;
print $strout2;
Run Code Online (Sandbox Code Playgroud)
结果是:
在test.pl第14行使用"strict refs"时,不能使用字符串("Server1")作为SCALAR ref.
我希望能够$system->Name正确使用qq和deref .谁能解释我哪里出错了?
方法调用不是用双引号字符串插值,而是取消引用.如果要插入方法调用的结果,则必须取消引用它的引用:
my $strout1 = qq{Server is ${\$system->Name}\n};
Run Code Online (Sandbox Code Playgroud)