显然,可以将“原始符号”(与对符号的引用相反)存储在标量变量中并在标量上下文中使用它。
您如何确定标量值表达式是否是这些符号之一?
它们似乎字符串化"*name_of_symbol"
并ref
返回""
。但是Data::Dumper
,也能够确定它不是字符串并在不引用的情况下打印它。
是否可以确定您何时拥有原始符号?怎么样Data::Dumper
?
#!/usr/bin/env perl
use strict;
use warnings;
use Data::Dumper;
local *foo = \4;
my $sym = *foo;
printf "((%s))\n", $sym;
printf "[[%s]]\n", (ref $sym);
print Dumper($sym);
产生:
((*main::foo))
[[]]
$VAR1 = *::foo;
我期待ref $sym
.