看情况, 看你怎样定义"有值", undef , 0 , "", '' 都可以是一个值. 如果你将 $a 赋值成以上任何一个, 那 if ( $a ) 返回的都是 false.所以你想保险点的话, 可以写成 if ( defined $a ) { ... }
perl可以用ref 来判断某个变量的类型。$var = 10;print ref(\$var);输出SCALAR