What are the "must have" modules?

Ovid on 2005-08-17T18:44:43

I know this has been answered in many other places, but I was hoping to see a nice list here. Assuming you've just installed Perl, what modules are missing that you absolutely need? I have a variety of them, but just off the top of my head, I need:

  • aliased
  • Class::DBI
  • DBD::SQLite
  • DBI
  • Data::Dumper::Simple
  • HTML::TokeParser::Simple
  • Inline
  • Regexp::Common
  • Template
  • Test::Class
  • Test::Differences
  • Test::Exception
  • Test::MockModule
  • Test::Pod::Coverage
  • Test::Pod
  • Test::WWW::Mechanize
  • WWW::Mechanize

What would you put on that list?


Here are the ones I installed last week...

cog on 2005-08-17T18:52:02

  • Bundle::CPAN (so I can get full capacity)
  • Bundle::Test (so that everything gets tested properly, from now on)
  • CPAN::Mini (after which I start creating a mirror)
  • Bundle::COG (it's my stuff, OK?)
  • Date::DayOfWeek (required for stuff in ~/bin)
  • ExtUtils::ModuleMaker (required for stuff in ~/bin)
  • JSAN (I'm interested in this one)
  • Perl::Tidy (required by my .vimrc, but I rarely use it now)
  • Spork (making slides)
  • WWW::Mechanize (I like this one a lot)

date handling

jdavidb on 2005-08-17T20:07:52

I still install and use Time::Piece regularly, but I am in the process of learning how to use DateTime and switching over to it. One or both are indispensible to me.

I used to have a list of must-install modules in my perl installation instructions, but that list has definitely changed today.

Re:date handling

Ovid on 2005-08-17T20:13:35

Yes. I suspect many programmers need all the help they can get when it comes to handling dates ... :)

Your choice of a templating module

dws on 2005-08-17T20:30:37

  • HTML::Template, or to taste.

XML::Simple

Lecar_red on 2005-08-17T20:46:13

There is always something that requires quick XML parsing...

XML::Simple

Hmmm....

Adrian on 2005-08-17T20:48:49

Of course it depends to some extent on whatever I'm doing at the moment. However in addition to what's on your list I'd probably feel a little lost without:

  • Large chunks of Test::*
  • Kwiki - having a wiki per-project is my default behaviour now
  • CPAN::Mini - becoming my default way of managing modules for clients
  • DateTime - because it rocks
  • File::Find::Rule - because it also rocks
  • Devel::Size - for figuring out where all that memory went
  • HTTP::Recorder - web site testing and scraping
  • Module::Build - because I hate makefiles
  • Apache::Test - for testing... well you can probably guess
  • Cache - slow, but useful
  • Data::UUID - keep finding uses for it in the oddest places
  • CPANPLUS - because it has an API I can get at
  • Devel::Cover - because coverage reports give me the warm fuzzies
  • Devel::Profiler - it took how long?!
  • Exception::Class - saves typing
  • Hook::LexWrap - great for wedging stuff in
  • Mac::Growl - because growl rocks
  • Module::CoreList - to figure out what started working when
  • Template - coz I like it

My Modules

Smylers on 2005-08-18T07:44:14

As well as DateTime , which a few other people have mentioned, I soon find myself installing these:

Smylers

My picks

ChrisDolan on 2005-08-23T13:04:46

Here's my unique contributions:
  • Algorithm::Diff
  • AnnoCPAN::Perldoc
  • Archive::Zip/Archive::Tar
  • Crypt::RC4
  • DBD::mysql
  • Email::Valid
  • File::Slurp
  • Net::ICal
  • PAR
  • Parse::RecDescent
  • Spreadsheet::ParseExcel
  • Spreadsheet::WriteExcel
  • URI
  • XML::Parser

And my "me too"s
  • CPANPLUS
  • DateTime
  • DBI
  • Module::Build
  • Module::CoreList
  • Path::Class
  • Regexp::Common
  • YAML

And my own modules that I use constantly:
  • CAM::PDF
  • CGI::Compress::Gzip

my list contains at least

jouke on 2005-08-24T09:53:05

  • Wx (the GUI stuff)
  • Locale::Maketext::Lexicon (for L18N)
  • PAR (for packaging)
  • File::Cache (simple caching)
  • YAML (easy storage/retrieval of data structures)

And my own stuff:
  • Speech::Synthesis (for TTS)
  • AAC::Pvoice (for pVoice development)

Basic stuff

mir on 2005-08-24T19:12:25

Reading my list I note that "high-level" modules are conspicuously absent, nothing too far from the metal here:

  • YAML: for debugging, storing things to be processed by an other piece of code and output if I am the one that will read it,
  • CGI: yessir, I still use it for simple things that do not require...
  • Text::Template: I don't work with graphic designers and the little web stuff I do is quite simple, so Text::Template works really well for me,
  • DBI of course, with either
  • DBD::Pg: for serious stuff, or
  • DBD::SQLite for anything single-user
  • A bunch of convenient ones: Sys::Hostname, POSIX, Image::Size, Getopt::Std, FindBin, List::Util, File::Basename, File::Copy, Encode

Oh, I nearly forgot, I do XML stuff sometimes, with XML::Twig ;--)

Re:

Aristotle on 2005-10-15T16:51:52

The ones I really don’t want to do without, roughly in order of importance:

  • XML::LibXML
  • libwww-perl
  • DBI
  • DateTime

Also rans, in alphabetical order:

  • CGI::Prototype
  • Module::Build
  • Template
  • XML::LibXSLT

And the one I hope to write a substantial amount of code around once I have the tuits:

  • Gtk2