NAME
Object::Disoriented - remove object-orientation from modules
SYNOPSIS
use Object::Disoriented HTML::Fraction => qw<tweak>;
print tweak($html);
DESCRIPTION
Some Perl modules have interfaces that seem object-oriented interfaces,
but for no apparent reason. For example, Léon Brocard's
otherwise-excellent HTML::Fractions module insists you use it in an OO
manner:
my $fractionifier = HTML::Fraction->new;
print $fractionifier->tweak($html);
There's never anything interesting in the instance. You have to spend
code on creating the instance, and then you have to pass that spurious
instance to each call.
I think that's pretty tedious; I'd much rather just have functions to
call. Enter Object::Disoriented.
Object::Disoriented is only used with "use". The first argument is the
name of the unnecessarily-OO class; the class gets loaded if need be.
Subsequent arguments are the names of the functions you want:
use Object::Disoriented HTML::Fraction => qw<tweak tweak_frac>;
Object::Disoriented internally creates an instance of the class you
name. The names you ask for are exported into your namespace; they are
freshly-created functions which just call the appropriate methods on the
instance it created for.
If you want to disorient two or more modules in a single Perl package,
just use Object::Disoriented more than once:
use Object::Disoriented HTML::Fraction => qw<tweak tweak_frac>;
use Object::Disoriented CGI::Simple => qw<param upload_info>;
SEE ALSO
HTML::Fraction, CGI::Simple