如何在perl子函数中传递hash

如何在perl子函数中传递hash,第1张

sub test {

    my %hash = @_

   物孝 print "罩纯稿$_ => $hash{$_}$/" foreach keys %hash

}

my %h = ( A => 100, B => 200, C 裤返=> 300 )

test(%h)

当然可以了。事实上perl可正竖肢以返回任意类型举世的参数。需要注意的是,如果同时返回多个参数,可能需要使用\来将返回“变成”一个$类型。调用者使用$取到返回后,再变回原类型。

比如:

($a,$b) = &ssss

@a = $a

sub ssss

{

@array = (1,2,3)

$value = "abc"

return (\纤圆@array, $value)

}

疑问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 ) 这样来处理


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/yw/12254262.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存