为什么包含代码段的标量变量未正确存储在CSV文件中?

时间:2017-10-04 12:09:16

标签: perl

我有一个变量$code = \'print "Hello World";'

当我尝试使用perl在CSV文件中写入此值时,我会在CSV中的CODE列下看到SCALAR(0x6ac7890)之类的内容。我期待专栏下的print "Hello World";。有人可以澄清这里出了什么问题吗?

1 个答案:

答案 0 :(得分:6)

您的变量不包含代码段。它包含代码段的引用。这不是一回事。

要获得您想要的内容,您可以存储实际代码段:

$code = 'print "Hello world"';
print $code;

或者您可以继续存储引用,但在打印时将其取消引用:

$code = \'print "Hello world"';
print $$code;  # Note $$ to de-reference variable