[英]Perl array hash - strict refs
对于大多数人来说,这可能很简单,但是我有一个Perl脚本,在其中我使用严格,并使用以下语法:
$welcome_data[$x]{email} = $data[0];
工作正常。 现在,当我启用严格时:
$welcome_data[$x]{email} = $data[0];
Can't use string ("") as a HASH ref while "strict refs" in use
谁能帮我解决我做错的事情?
非常感谢
$welcome_data[$x]{email}
是短的
$welcome_data[$x]->{email}
换句话说, $welcome_data[$x]
应该是一个引用(或undef [1] )。 但是,在您的情况下,它包含一个空字符串。 就像你在做的一样
${""}{email}
显然那不是您想要的。 但是对您来说幸运的是,这正是严格的ref设计用来捕获的错误。 现在,您可以在为$welcome[$x]
分配空字符串的任何地方修复。
如果不确定 ,Perl会自动为您提供对新匿名哈希的引用,就像您曾经使用过一样。
( $welcome_data[$x] //= {} )->{email}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.