Now uses Getopt::Long for command line argument parsing.