in reply to Re: Not Matt's Scripts
in thread Not Matt's Scripts
Ah, yes. Much better! I was also thinking of an improvement to prevent the example code from sticking around when it wasn't being used. For example:
would still require that the sample code be parsed the first time that the module is used but the optimizer would know to throw the resulting code away. Not quite as pretty, though.package main; BEGIN { my $isScript= ! caller(2); sub _isScript() { $isScript } } if( _isScript ) { require CGI; my $q= CGI->new(); # ... } undef &_isScript;
Another hack to prevent even the work of parsing can be done:
- tye (but my friends call me "Tye")package main; unless( caller ) { my $code= do { local($/); <DATA> }; my $file= __FILE__; my $line= __LINE__ + 5; eval "\n# line $line $file\n$code; 1" or die "$@\n"; } __END__ use CGI; # ... __END__
In Section
Meditations