Perl Programming Page 4 - Introduction to mod_perl (part 4): Perl Basics |
Assume that you want to share the script.pl: ---------------- use vars qw($q); use CGI; use lib qw(.); use My::HTML qw($q); # My/HTML.pm is in the same dir as script.pl $q = CGI->new; My::HTML::printmyheader(); Note that I have imported My/HTML.pm ---------------- package My::HTML; use strict;
BEGIN {
use Exporter ();
@My::HTML::ISA = qw(Exporter); @My::HTML::EXPORT = qw(); @My::HTML::EXPORT_OK = qw($q); } use vars qw($q);
sub printmyheader{
# Whatever you want to do with $q... e.g.
print $q->header();
}
1;
So the What if you need to share You leave use My::Doc qw($q); Then you add the same One possible pitfall is when you want to use use My::Doc qw($q); into script.pl: ---------------- use vars qw($q); use CGI; use lib qw(.); use My::HTML qw($q); # My/HTML.pm is in the same dir as script.pl use My::Doc qw($q); # Ditto $q = new CGI; My::HTML::printmyheader(); My/HTML.pm ---------------- package My::HTML; use strict;
BEGIN {
use Exporter ();
@My::HTML::ISA = qw(Exporter); @My::HTML::EXPORT = qw(); @My::HTML::EXPORT_OK = qw($q); } use vars qw($q); use My::Doc qw($q);
sub printmyheader{
# Whatever you want to do with $q... e.g.
print $q->header();
My::Doc::printtitle('Guide');
}
1;
My/Doc.pm ---------------- package My::Doc; use strict;
BEGIN {
use Exporter ();
@My::Doc::ISA = qw(Exporter); @My::Doc::EXPORT = qw(); @My::Doc::EXPORT_OK = qw($q); } use vars qw($q);
sub printtitle{
my $title = shift || 'None';
print $q->h1($title); } 1;
blog comments powered by Disqus |