Hi Monk,
Thank you so very much for the step-by-step explanation,
OK, in 2.1.1.1 you say A is loaded and compiled.
So, what essentially is the difference between
A.pm
~~~~~~~~~~
package A;
require Exporter;
@ISA = (Exporter);
@EXPORT = qw(abc);
AND
A.pm
~~~~~~~~~~
package A;
BEGIN{
require Exporter;
@ISA = (Exporter);
@EXPORT = qw(abc);
}
as irrespective of wheather BEGIN is there A is loaded and compiled, when 'use A' is encountered.
But the BEGIN blocks provides a significant improvement in case of circular dependency/inheritance issues. How does the BEGIN block create such a difference then.