SPUG: OO Perl conundrum

Richard Anderson Richard.Anderson at raycosoft.com
Mon Jun 11 17:45:50 CDT 2001


I recently loaded an upgrade to HTTP::WebTest to CPAN, and promptly got an
interesting change request from a gentleman named Thomas Ayles (actually, a
submittal of the code for a complete revision of the module).
(HTTP::WebTest is a module that fetched URLs, runs tests on the returned
page and generates a detailed test report.)

Thomas's idea, which is good, is to define a namespace,
HTTP::WebTest::Plugins, to hold plugin subroutines that run additional tests
on the page.  Then coderefs to the subroutines are passed to HTTP::WebTest,
which passed the fetched page to the subroutine for testing.  Thomas also
defines a class HTTP::WebTest::PluginHelper to encapsulate the report
generation.

My concern is about Thomas's use of the package and use statements.  The
structure of the new HTTP::WebTest class looks like this:

package HTTP::WebTest;
...
{
    package PluginHelper;
    ...
   package Plugins;
   use HTTP::WebTest;
   ...
}
 ...

This seems like a fairly non-standard use of OO Perl.  Would this be better
done by subclassing HTTP::WebTest and making PluginHelper and Plugins
subclasses of the new subclass be better? Or is there some simpler approach?

Puzzled,
Richard



 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     POST TO: spug-list at pm.org       PROBLEMS: owner-spug-list at pm.org
      Subscriptions; Email to majordomo at pm.org:  ACTION  LIST  EMAIL
  Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address
 For daily traffic, use spug-list for LIST ;  for weekly, spug-list-digest
  Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/





More information about the spug-list mailing list