in reply to Multiple tasks in same_script, or multiple_scripts?

You might want to be able to complete each task in
multiple scripts. Or better yet multiple object orientated
perl modules. For example you could have an User.pm object.
package User; use strict; ... sub new { my ($pkg,$pw, $userName, $home,$shell) = @_; bless { password => $pw || "Changeme", name => $userName, home => $home || "/usr/home/$userName", shell => $shell || "/usr/bin/bash" }, $pkg; } sub changePasswd { my $obj = shift; my $oldPassword = shift; my $newPassword = shift; ... $obj->{password} = newPassword; } ... 1;
Then you could combine these scripts into one or more
scripts if you want. Heck why not turn them into "Web
servers" with SOAP::Lite!

And yes you should use subs and try to avoid big ugly
if elsif statements as other monks have pointed out.

Have fun!