perl - 调用ref没有返回任何内容

时间:2013-01-13 10:13:42

标签: perl

有人可以解释为什么调用ref没有返回任何内容吗?

[pista@HP-PC ~]$ perl -wlae '$var=1; print ref($var)'

[pista@HP-PC ~]$ perl -wlae '@var=1; print ref(@var)'

[pista@HP-PC ~]$ perl -v

This is perl 5, version 14, subversion 3 (v5.14.3) built for x86_64-linux-thread-multi

Copyright 1987-2012, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.

 [pista@HP-PC ~]$ uname -a
Linux HP-PC 3.6.11-1.fc16.x86_64 #1 SMP Mon Dec 17 21:29:15 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

我做错了什么?

2 个答案:

答案 0 :(得分:7)

来自perldoc -f ref

ref EXPR
ref     Returns a non-empty string if EXPR is a reference, the empty
        string otherwise. 

您的值是标量和数组,它们不是引用,因此ref返回空字符串。如果你这样做:

print ref \$var;

您将获得输出:SCALAR

答案 1 :(得分:3)

@var不是ref,它是一个数组。试试ref(\@var)

相关问题