Maypole has too many dependancies!

I tried to install the Maypole yesterday. For those who aren’t aware, Maypole is a MVC
(Model/View/Controller) framework for building database driven web apps in Perl (kind of similar to the
mondo popular Ruby on Rails). I of course use CPAN to install it.

The availability of so much re-usable code on CPAN has long been one of the strengths of Perl, but for
Maypole at least, they’ve taken it to far. Why? Because installing Maypole required the install of 41
modules!!! That’s insane! And I’m quite sure it doesn’t have to be that way. I’ve installed Ruby on
Rails on the same system (OSX 10.4), and it was definitely NOT that large of an install.

At any rate, while I was waiting for the install to finish, I found a few articles like this one that seem to indicate that Maypole has
been superseded by Catalyst. So I guess I’ll bail out on Maypole and try installing Catalyst.

For reference, here are the Modules that CPAN tried to install for Maypole:

cpan> install Maypole
—- Unsatisfied dependencies detected during [T/TE/TEEJAY/Maypole-2.10.tar.gz] —–
Class::DBI::SQLite
Class::DBI::FromCGI
CGI::Untaint
Class::DBI::Loader::Relationship
Test::MockModule
UNIVERSAL::moniker
Class::DBI::AsForm
HTTP::Headers
Class::DBI::AbstractSearch
Class::DBI::Loader
Class::DBI::Plugin::RetrieveAll
CGI::Simple
Class::DBI::Pager
Template
Class::DBI
Template::Plugin::Class
UNIVERSAL::require

—- Unsatisfied dependencies detected during [M/MI/MIYAGAWA/Class-DBI-SQLite-0.11.tar.gz] —–
DBD::SQLite
Class::DBI
Ima::DBI

—- Unsatisfied dependencies detected during [M/MS/MSERGEANT/DBD-SQLite-1.09.tar.gz] —–
DBI

—- Unsatisfied dependencies detected during [T/TM/TMTM/Class-DBI-3.0.1.tar.gz] —–
UNIVERSAL::moniker
Class::Accessor
Class::Trigger
Class::Data::Inheritable
Ima::DBI

—- Unsatisfied dependencies detected during [M/MI/MIYAGAWA/Class-Trigger-0.10.tar.gz] —–
Class::Data::Inheritable

—- Unsatisfied dependencies detected during [T/TM/TMTM/Ima-DBI-0.34.tar.gz] —–
DBIx::ContextualFetch

—- Unsatisfied dependencies detected during [T/TM/TMTM/Class-DBI-FromCGI-1.00.tar.gz] —–
CGI::Untaint

—- Unsatisfied dependencies detected during [T/TM/TMTM/CGI-Untaint-1.26.tar.gz] —–
UNIVERSAL::require

—- Unsatisfied dependencies detected during [S/SI/SIMON/Class-DBI-Loader-Relationship-1.2.tar.gz] —–
Class::DBI::Loader
Lingua::EN::Inflect::Number

—- Unsatisfied dependencies detected during [S/SR/SRI/Class-DBI-Loader-0.22.tar.gz] —–
Lingua::EN::Inflect

—- Unsatisfied dependencies detected during [T/TM/TMTM/Class-DBI-AsForm-2.42.tar.gz] —–
Class::DBI::Plugin::Type
HTML::Element

—- Unsatisfied dependencies detected during [S/SB/SBURKE/HTML-Tree-3.18.tar.gz] —–
HTML::Tagset

—- Unsatisfied dependencies detected during [M/MI/MIYAGAWA/Class-DBI-AbstractSearch-0.07.tar.gz] —–
SQL::Abstract::Limit

—- Unsatisfied dependencies detected during [D/DA/DAVEBAIRD/SQL-Abstract-Limit-0.11.tar.gz] —–
SQL::Abstract
Test::Exception

—- Unsatisfied dependencies detected during [A/AD/ADIE/Test-Exception-0.21.tar.gz] —–
Sub::Uplevel
Test::Builder::Tester

—- Unsatisfied dependencies detected during [M/MI/MIYAGAWA/Class-DBI-Pager-0.07.tar.gz] —–
Data::Page
Exporter::Lite

—- Unsatisfied dependencies detected during [L/LB/LBROCARD/Data-Page-2.00.tar.gz] —–
Class::Accessor::Chained::Fast

—- Unsatisfied dependencies detected during [S/ST/STAS/libapreq-1.33.tar.gz] —–
Apache::Test

Love Perl – Hate Perl

For the most part, I love Perl. I use it at work constantly to whip up little scripts to automate things, summarize things, etc. But sometimes it drives me crazy with it’s inconsistent syntax. An example:

To find the length of an array, you do:

scalar @array

or

$#array

But to find the length of a hash, you do:

scalar keys %hash

Sigh… just one minor example of the little gotcha’s that IMHO make it impossible to program in Perl without a reference manual.