解决方法
参见
The Arrow Operator perlop:
“@H_403_12@->” is an infix dereference operator,just as it is in C and C++. If the right side is either a @H_403_12@[...],@H_403_12@{...},or a @H_403_12@(...) 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.