解决方法
参见
The Arrow Operator perlop:
“
->
” is an infix dereference operator,just as it is in C and C++. If the right side is either a[...]
,{...}
,or a(...)
subscript,then the left side must be either a hard or symbolic reference to an array,a hash,or a subroutine respectively. (Or technically speaking,a location capable of holding a hard reference,if it’s an array or hash reference being used for assignment.) See 07001 and 07002.Otherwise,the right side is a method name or a simple scalar variable containing either the method name or a subroutine reference,and the left side must be either an object (a blessed reference) or a class name (that is,a package name). See 07003.