Tuesday, November 16, 2010

Pod Web Server

Most Perl developers use CPAN or PerlDoc from command line interface for viewing documentation of Perl modules. Only a few are aware of Pod::Webserver module which creates a minimal web server to serve local Perl documentation. I found this really handy when I am coding Perl during flights or at airports without wireless connectivity.

Pod::WebServer module runs as an application that works as a minimal web server to serve local Perl documentation. This module provides podwebserver command which is equivalent to PerlDoc-to-HTML-over-HTTP.
Step 1: Install Pod::Webserver

If podwebserver isn't on your system, install the Pod::Webserver module from CPAN. On my Cygwin environment, the installation goes like this:

cpan> install Pod::Webserver
Running install for module Pod::Webserver
Running make for A/AR/ARANDAL/Pod-Webserver-3.04.tar.gz
Fetching with LWP:
ftp://cpan-du.viaverio.com/pub/CPAN/authors/id/A/AR/ARANDAL/Pod-Webserver-3.04.tar.gz
CPAN: Digest::SHA loaded ok
Fetching with LWP:
ftp://cpan-du.viaverio.com/pub/CPAN/authors/id/A/AR/ARANDAL/CHECKSUMS
Checksum for /cygdrive/d/cygwin/download/.cpan/sources/authors/id/A/AR/ARANDAL/Pod-Webserver-3.04.tar.gz ok
Scanning cache /cygdrive/d/cygwin/download/.cpan/build for sizes
Pod-Webserver-3.04/
Pod-Webserver-3.04/t/
Pod-Webserver-3.04/t/03_daemon.t
Pod-Webserver-3.04/t/01_about_verbose.t
Pod-Webserver-3.04/t/02_pod_webserver.t
Pod-Webserver-3.04/podwebserver
Pod-Webserver-3.04/lib/
Pod-Webserver-3.04/lib/Pod/
Pod-Webserver-3.04/lib/Pod/Webserver.pm
Pod-Webserver-3.04/META.yml
Pod-Webserver-3.04/MANIFEST
Pod-Webserver-3.04/ChangeLog
Pod-Webserver-3.04/MANIFEST.SKIP
Pod-Webserver-3.04/Makefile.PL
Pod-Webserver-3.04/README
CPAN.pm: Going to build A/AR/ARANDAL/Pod-Webserver-3.04.tar.gz
Checking if your kit is complete...
Looks good
Writing Makefile for Pod::Webserver
CPAN: YAML loaded ok
cp lib/Pod/Webserver.pm blib/lib/Pod/Webserver.pm
cp podwebserver blib/script/podwebserver
/usr/bin/perl.exe "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/podwebserver
/usr/bin/make -- OK
Running make test
/usr/bin/perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/01_about_verbose....ok
t/02_pod_webserver....ok
t/03_daemon...........ok
All tests successful.
Files=3, Tests=24, 35 wallclock secs ( 2.59 cusr + 1.59 csys = 4.18 CPU)
/usr/bin/make test -- OK
Running make install
Installing /usr/lib/perl5/site_perl/5.8/Pod/Webserver.pm
Installing /usr/bin/podwebserver
Writing /usr/lib/perl5/site_perl/5.8/cygwin/auto/Pod/Webserver/.packlist
Appending installation info to /usr/lib/perl5/5.8/cygwin/perllocal.pod
/usr/bin/make install -- OK
Step 2: Once Installed Start your PodWebServer

Open Cygwin window and type in `podwebserver &`

podwebserver

Now Open your web browser and point it to localhost and port specified by podwebserver command. You can also change the default port number by using ""-p options.

For Example: podwebserver "-p" 8020

podwebserver

So now even when I am on flights or traveling, I can run my own Perl documentation server to aid me while I am coding.

Hope this helps you too.

No comments: