=item %s argument is not a HASH or ARRAY element
-(F) The argument to exists() must be a hash or array element, such as:
+(F) The argument to exists() must be a hash or array element or a
+subroutine with an ampersand, such as:
$foo{$bar}
$ref->{"susie"}[12]
+ &do_something
=item %s argument is not a HASH or ARRAY element or slice
-(F) The argument to delete() must be either a hash or array element,
-such as:
+(F) The argument to delete() must be either a hash or array element or a
+subroutine name, such as:
$foo{$bar}
$ref->{"susie"}[12]
+ &do_something
or a hash or array slice, such as:
C<$is_require> are set: C<$is_require> is true if the frame is created by a
C<require> or C<use> statement, $evaltext contains the text of the
C<eval EXPR> statement. In particular, for an C<eval BLOCK> statement,
-$filename is C<(eval)>, but $evaltext is undefined. (Note also that
+$subroutine is C<(eval)>, but $evaltext is undefined. (Note also that
each C<use> statement creates a C<require> frame inside an C<eval EXPR>
frame.) $subroutine may also be C<(unknown)> if this particular
subroutine happens to have been deleted from the symbol table.