Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
打印perl结构成员_Perl - Fatal编程技术网

打印perl结构成员

打印perl结构成员,perl,Perl,我有一个结构,想打印出引号内的内容 #!/usr/bin/perl use Class::Struct; struct( astruct => [ test => '$']); my $blah = new astruct; $blah->test("asdf"); print "prints array reference: '$blah->test'\n"; print "prints content: '", $blah->test, "'\n";

我有一个结构,想打印出引号内的内容

#!/usr/bin/perl

use Class::Struct;

struct( astruct => [ test => '$']);

my $blah = new astruct;
$blah->test("asdf");

print "prints array reference: '$blah->test'\n";
print "prints content: '", $blah->test, "'\n";
输出是

prints array reference: 'astruct=ARRAY(0x20033af0)->test'
prints content: 'asdf'
有没有办法打印引号中的内容


它使我的代码有点邋遢,不得不一直打开和关闭引号。使用``来运行使用结构内容的命令时也会出现问题。

您考虑过Perls吗

给定标量或引用变量列表,写出它们的 perl语法中的内容。引用也可以是对象。这个 每个变量的内容在单个Perl语句中输出。处理 正确使用自指结构


你考虑过帕尔斯吗

给定标量或引用变量列表,写出它们的 perl语法中的内容。引用也可以是对象。这个 每个变量的内容在单个Perl语句中输出。处理 正确使用自指结构


变量
$blah
保存一个数组引用,并在取消引用之前插入到字符串中。要改变这一点,我们将取消引用放在字符串之外:

print "prints no array reference any more: '".($blah->test)."'\n";
# parenthesis was optional
或者用匿名数组耍点小把戏:

print "prints no array reference any more: '@{[$blah->test]}'\n";
我们取消引用(
@{…}
)一个匿名数组(
[…]
),该数组由
test
方法的返回值构造而成。(无论是什么,我们都会选择您的结构字段。)

虽然这两种方法在构造字符串时都有效,但第二种形式可以很容易地在
qx
或backticks环境中使用。您还可以构建一个字符串
$command
,然后使用
qx($command)
执行该字符串

如果您不需要
Class::Struct
的附加功能,您可以始终使用哈希并省去麻烦:

%blah = (test => 'asdf');
print "prints my value: '$blah{test}'\n";


变量
$blah
保存一个数组引用,并在取消引用之前插入到字符串中。要改变这一点,我们将取消引用放在字符串之外:

print "prints no array reference any more: '".($blah->test)."'\n";
# parenthesis was optional
或者用匿名数组耍点小把戏:

print "prints no array reference any more: '@{[$blah->test]}'\n";
我们取消引用(
@{…}
)一个匿名数组(
[…]
),该数组由
test
方法的返回值构造而成。(无论是什么,我们都会选择您的结构字段。)

虽然这两种方法在构造字符串时都有效,但第二种形式可以很容易地在
qx
或backticks环境中使用。您还可以构建一个字符串
$command
,然后使用
qx($command)
执行该字符串

如果您不需要
Class::Struct
的附加功能,您可以始终使用哈希并省去麻烦:

%blah = (test => 'asdf');
print "prints my value: '$blah{test}'\n";


这可以使打印字符串更容易,但不能解决“问题”。我想我是希望有一种方法可以在适当的地方解除限制。这可以使打印字符串更容易,但不能解决“问题”。我想我是希望能找到一种方法来解除它的束缚。