NAME
Filter::EOF - Run a callback after a file has been compiled
VERSION
0.01
SYNOPSIS
package MyPackage;
use warnings;
use strict;
use Filter::EOF;
sub import {
my ($class, @args) = @_;
my $caller = scalar caller;
# set the COMPILE_TIME package var to a false value
# when the file was compiled
Filter::EOF->on_eof_call(sub {
no strict 'refs';
${ $caller . '::COMPILE_TIME' } = 0;
});
# set the COMPILE_TIME package var to a true value when
# we start compiling it.
{ no strict 'refs';
${ $caller . '::COMPILE_TIME' } = 1;
}
}
1;
...
package MyUsingPackage;
use warnings;
use strict;
our $COMPILE_TIME;
use MyPackage;
# prints 'yes'
BEGIN { print +( $COMPILE_TIME ? 'yes' : 'no' ), "\n" }
# prints 'no'
print +( $COMPILE_TIME ? 'yes' : 'no' ), "\n";
1;
DESCRIPTION
This module utilises Perl's source filters to provide you with a mechanism to run some code after a file using your module has been processed.
METHODS
on_eof_call( $code_ref )
Call this method in your own import method to register a code reference that should be called when the file useing yours was compiled.
EXAMPLES
You can find the example mentioned in SYNOPSIS in the distribution directory examples/synopsis/.
SEE ALSO
Filter::Call::Util, "Exporting without using Exporter's import method" in Exporter
AUTHOR AND COPYRIGHT
Robert 'phaylon' Sedlacek - <rs@474.at>. Many thanks to Matt S Trout for the idea and inspirations on this module.
LICENSE
This program is free software; you can redistribute it and/or modify it under the same terms as perl itself.