in reply to Command Line

An alternative is to use the core module, Getopt::Long, to handle the processing of command line options. One advantage of named options is that it can be independent of order:
codename -repl string -in infile -out outfile