in reply to Avoiding global object handle
Thus, whenever you need to use it in a module, you'll just have to put:package MyFramework; use strict; use Exporter; use vars qw(@ISA @EXPORT @EXPORT_OK); @ISA = qw(Exporter); @EXPORT_OK = qw( $HANDLE ); 1;
at the top of it and it'll be available for all methods in that module. Where would you initialize this variable? As early as possible, before any method requiring it is executed, preferrably in a BEGIN block within the MyFramework package itself.use MyFramework qw ( $HANDLE );
This approach is equivalent to your "get_handle" method because it ensures that the same instance will be used by all. It also makes it easy to replace the class that produces the handle, because it would only be invoked once in the whole of your code, at the place where $HANDLE is initialized.
|
|---|