anazawa has asked for the wisdom of the Perl Monks concerning the following question:

Hi Monks, I'm working on the following situation:
# package Foo; use strict; use warnings; use Bar; sub foo { warn 'Foo::foo was called' } Bar->bar; 1;
A package Foo calls Bar's bar() method. Foo defines foo() method which prints a message to STDERR. On the other hand, looks as follows:
# package Bar; use strict; use warnings; sub bar { Foo->foo } 1;
Bar defines bar() method which calls Foo's foo() method. I executed and confirmed the script output 'Foo::foo was called':
$ ls $ perl Foo::foo was called

This result shows us that Bar can call Foo's foo() method without loading (I mean, without 'use Foo;') In other words, Bar can call the caller's method ( Foo::foo() ). If so, why is this possible? Is this one of well-known specifications? Which perldoc helps me understand this result?