This is my portal page of Perl.
Create modules for distribution
- Komodo Editor (free); Komodo IDE ($295)
- EPIC – Eclipse Perl Integration
This my portal page about Eclipse.
What is Eclipse?
- In brief, an IDE for multi-languages.
Tips & Tricks
CPAN is a great place to avoid reinvent the wheel, but some packages are not that reliable or not easy to use or install.
- DBD::mysql. Follow this instruction. If you get something like “
Library not loaded: libmysqlclient.16.dylib“, see here.
- Interface to GNU Scientific Library Math::GSL. If you get lost at what the parameters are, read more in GSL manual, e.g. hypergeometric distribution.
- Getopt::Long and Pod::Usage make a friendly command with options and help/man doc.
- LSF (unauthorized!) – A perl API built on top of the LSF command line tools. I write my own version.
- local::lib – create and use a local lib/ for perl modules with PERL5LIB (PS: best way to install package when you are not administrator.)
- FIle::Basename – Parse file paths into directory, filename and suffix.
- Template Toolkit (TT) – website, book, and how to migarte from CGI
- HTML::Table – set additional attribute by
Tree manipulation: Bio::TreeIO, Bio::Tree:Tree, Bio::Tree:TreeI, Bio::Tree::TreeFunctionsI, Bio::Tree::Node, Bio::Tree::NodeI
- Perldoc server/mini CPAN: Pod::Webserver, Pod::POM::Web, Pod::Browser(Catalyst based), or CPAN::Mini::Webserver
perl -MYourModule 999
perl -MYourModule -e 'print "$YourModule::VERSIONn"'
perl -MNet::SSLeay 999
perl -MNet::SSLeay -e 'print "$Net::SSLeay::VERSIONn"'
- In first command, no space between and module name.
- In second command, use $ before module name.
Quick answer by command line
cpan-outdated -p | cpanm
# if you have not installed cpan-outdated
# or, you have not even installed cpanmin.us
curl -L http://cpanmin.us | perl - App::cpanminus
More in details.
Perhaps, you would like to turn off confirmation.
I am developing a website using LAMP, a dev toolkit of a combination of free and open source software. In particular, I am using Perl-based MVC framework Catalyst. Catalyst comes with PSGI server, i.e. you can run your web app without Apache. However, when I try to integrate my web app with MeidaWiki, a wiki engined based on PHP, I still need to setup LAMP. Here are two posts I found particularly useful.
Is Perl still a viable language for web dev?
Catalyst Tips & Tricks
- Diff between uri_for() and uri_for_action(). uri_for() is usually used for static files like images, css and js. uri_for_action() as its name implies, is usually used for action, such as redirect to a controller’s route, which paths may be changed. See here.
- Use c.uri_for(“your/path”) rather than “your/path” in Template::Toolkit template
- Catalyst::Plugin::PageCache – Cache the output of entire pages
- What’s the difference between :Args and :CaptureArgs in Catalyst? (here)
:CaptureArgs(N) matches if there there at least N args left. It is used for non-terminal Chained handlers.
:Args(N) only matches if there are exactly N args left.
- Mojolicious (doc and wiki). Why not Mojo (here and here)? Personally, I usually need to connect to MySQL/SQLite database, but Mojo is agnostic to database 😦
- Dancer: lightweight
- How to execute CGI through HTML’s HREF link (here).