bradcathey has asked for the wisdom of the Perl Monks concerning the following question:
Fellow Monasterians,
I'm trying to get my head around my directory/file structure and how code gets passed around. To experiment I have laid out the barest of an example that still works, though I normally use CGI::Application and HTML::Template, but other than the instance script, the layout can be pretty much the same.
Questions: 1) General—is this a plausible layout? 2) Specific—why do I have to include use Common.pm in my Contact.pm, when it is using Main as base and Main already includes Common.pm? Other questions: what is inheriting what? if anything? or what could be inherited? and is that even the right word? Thanks in advance.
Structure:
/public_html/---+ | | | | | calling.cgi | | /applications/---+ | | Main.pm | Common.pm | /Contact/--+ | | Contact.pm
calling.cgi
#!/usr/local/bin/perl use lib "/usr/home/bradcathey/applications/"; use strict; use Contact::Contact; print "done<br />";
Main.pm
#!/usr/bin/perl use strict; use Common; #usually CGI::Application, plug-ins, HTML::Template, etc. print "Content-type: text/html\n\n"; print "main.pm<br />"; 1;
Common.pm
package Common; use strict; use Exporter 'import'; @EXPORT = qw( show_here ); sub show_here { print "common.pm<br />"; return "thanks for contacting us"; } 1;
Contact.pm
package Main::Contact; use base qw( Main ); use Common; #why? use strict; print "contact.pm<br />"; my $msg = show_here(); print $msg."<br />"; return 1;
html output:
main.pm contact.pm common.pm thanks for contacting us done
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Understanding module structure and inheritance
by jaldhar (Vicar) on Jan 30, 2008 at 14:50 UTC | |
by friedo (Prior) on Jan 30, 2008 at 14:54 UTC | |
by bradcathey (Prior) on Jan 30, 2008 at 15:30 UTC | |
by jaldhar (Vicar) on Jan 30, 2008 at 15:42 UTC | |
by naikonta (Curate) on Jan 30, 2008 at 18:35 UTC | |
Re: Understanding module structure and inheritance
by wfsp (Abbot) on Jan 30, 2008 at 14:35 UTC | |
Re: Understanding module structure and inheritance
by naikonta (Curate) on Jan 30, 2008 at 18:58 UTC |