CoreList

You want to use a module, but you're only allowed to use core modules? Or you want to recommend a module to somebody, and you know it's more likely that he'll use a module if it's in core (and thus he won't hand-roll his crappy CGI parser, and open a wide door to spammers)?

Module::CoreList is the answer, and it comes with a very handy script called corelist :

$ corelist Unicode::Normalize Unicode::Normalize was first released with perl 5.007003 $ corelist DBI DBI was not in CORE (or so I think) # search with regexes $ corelist /Tie/ Pod::Simple::TiedOutFH was first released with perl 5.009003 Tie::Array was first released with perl 5.005 Tie::File was first released with perl 5.007003 Tie::Handle was first released with perl 5.00405 Tie::Hash was first released with perl 5.002 Tie::Hash::NamedCapture was first released with perl 5.009005 Tie::Memoize was first released with perl 5.007003 Tie::RefHash was first released with perl 5.004 Tie::Scalar was first released with perl 5.002 Tie::StdHandle was first released with perl 5.01 Tie::SubstrHash was first released with perl 5.002 TieHash was first released with perl 5

(empty lines sanitized; corelist emits an empty line after each module which is a bit annoying)

Timestamps

Not from CPAN, but a tiny script I wrote:

#!/usr/bin/perl use strict ; use warnings ; use Time::Local qw(timelocal) ; if ( @ARGV ) { my $date = shift @ARGV ; if ( $date =~ m/ ^ (\d{4}) - (\d\d) - (\d\d) $ / ){ my ( $year , $month , $mday ) = ( $1 , $2 , $3 ); my ( $hr , $min , $sec ) = ( 0 , 0 , 0 ); my $time ; if ( $time = shift ( @ARGV ) and $time =~ m/ ^ (\d{1,2}) : (\d\d)(?: : (\d\d))? $ / ) { ( $hr , $min , $sec ) = ( $1 , $2 , $3 || 0 ); } print timelocal( $sec , $min , $hr , $mday , $month - 1 , $year - 1900 ), $/ ; } } else { print time , $/ ; }