#!/usr/bin/perl -w use CGI qw(:standard); use strict; #always! my $location = param("place"); print header; my %subs = ( 'home'=>\&home, # Just add a key and then a value then put your 'news'=>\&news, # stuff in a subroutine :) Yay! ); if (!$location){ &home }elsif (defined(my $action = $subs{$location})){# Thanks Chromatic $action->(); } # Q&A -> Subroutines -> How to make subroutine accessible as foo.pl?foo # Thanks again :-) ############### # Subroutines # ############### sub home{ print "this is home. I am John, hear me roar"; } sub news{ print "this is news"; }