perl – 写“@ARGV || =’.’;”有什么问题?
发布时间:2020-12-15 21:57:06 所属栏目:大数据 来源:网络整理
导读:参见英文答案 Why doesn’t ||= work with arrays?2个 为什么Perl会在下面的代码段中添加一个功能? $perl -Mstrict -wE '@ARGV ||= ".";'Can't modify array dereference in logical or assignment (||=) at -e line 1,near "'.';"Execution of -e aborted
参见英文答案 >
Why doesn’t ||= work with arrays?2个
为什么Perl会在下面的代码段中添加一个功能? $perl -Mstrict -wE '@ARGV ||= ".";' Can't modify array dereference in logical or assignment (||=) at -e line 1,near "'.';" Execution of -e aborted due to compilation errors. 虽然它很愉快地处理 $perl -Mstrict -wE '@ARGV = @ARGV || ".";' 我没有看到
非常感谢对这种行为更加人性化的解释. 解决方法
代码@ARGV不可能同时返回数组本身及其中的元素数,所以@ARGV || =’.’;没有意义.你需要评估@ARGV两次,一次是在标量上下文中(以获得元素数),一次是作为左值(以获得数组本身).
@ARGV = @ARGV || '.'; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |