#! perl use strict; use warnings; BEGIN { print "BEGIN 1\n"; } sub each { warn 'main::each() was called' } BEGIN { print "BEGIN 2\n"; } sub delete { warn 'main::delete() was called' } BEGIN { print "BEGIN 3\n"; } my %person = (name => 'Ken Takakura'); while (my ($key, $val) = each %person) { print "$key: $val\n"; } delete $person{name}; BEGIN { print "BEGIN 4\n"; } #### BEGIN 1 BEGIN 2 BEGIN 3 Ambiguous call resolved as CORE::each(), qualify as such or use & at 166_SoPW.pl line 13. BEGIN 4 name: Ken Takakura