While those modules do what you want, there is a learning curve involved, and they can some times be over kill. If all you need is to say, get the name a user then:
die "usage: script.pl firstName lastName\n" unless 2 == @ARGV;
my ( $firstName, $lastName ) = @ARGV;
Of course, if you want a fancier level of flag passing, such as optional parameters, then I recommend using one of the previously mentioned modules. I have rolled my own command line parser, and while it was fun, it was also a serious chunk of code. Don't go down that route.