- 论坛徽章:
- 1
|
说返回“列表”还是返回“数组”,这其实是一样的,但严格意义上说,我觉得应该说是返回了列表.
列表是数据,return @temp和return qw/a b c/无异。
文档中关于return部分也写到:“Evaluation of EXPR may be in list, scalar, or void context, depending on how the return value will be used”
shift实际是个函数,和map一样,在识别参数的时候都有局限性,我开始就是觉得是shift的问题,所以才想尽办法用类似“强制告诉shift我那function返回的是个数组”,其实我想要的就是这个写法“shift( @{ [ &func ] } )”
我本该想到的。。。以前对哈希表做过类似的事。
我再多说一句。@{ [ &function ] }的意思,里面的中括号就是强制数据为列表的形式,之后的大括号类似${abc},就是标识一下变量。前面再加上@也就真的成了一个数组了,这样shift函数就能认识了。
相应的,如果是强制数据以哈希表的形式出现,那就是%{ { &function } },这个我尝试过,是正确的。 |
|