in reply to Checking for data entry

my $start_dir = shift || die "missing arg";
is plenty (and no need to chomp until you actually use that parameter) , but if you have to start parsing many arguments, use a CPAN module like Getopt::Std or Getopt::Long.

UPDATE:
I should also add that when dealing with a starting directory, a common thing to do is supply a default instead of die'ing:

my $start_dir = shift || '.';

jeffa

L-LL-L--L-LL-L--L-LL-L--
-R--R-RR-R--R-RR-R--R-RR
B--B--B--B--B--B--B--B--
H---H---H---H---H---H---
(the triplet paradiddle with high-hat)