疑问1:布尔上下文特殊在那里?它特别在不同於eq,ne,==,!=那样,只会返回1或undef,它会返回一个"能对应当前正在访问的数据型态"的"有内容的值"或"空值",以array来说,空值就是(),以hash来说空值就是(undef,undef)疑问2:我仿照上面的代码做了以下验证,结果我以无法按我的思维解释,求高手点播。那你的思维是怎样的?其实你写的if((.))这样的结构也无异於$x = ( 1, 2, 3);$y = ( 4, 5, undef);print "'$x' '$y'";结果只有最後一个值起了作用,你写的在if中并没有被当成@list = ( ) ;print "Hello World" if ( @list ) ;这样来处理
sub test { my %hash = @_; print "$_ => $hash{$_}$/" foreach keys %hash;} my %h = ( A => 100, B => 200, C => 300 );test(%h);