I got my first error report to go along with it - bummer. So, I spent the majority of the day tinkering with the syntax and testing. It's a little more flexible and (hopefully) it works better now.
I've almost got a test suite ready, though it will be of the interactive kind. I discovered Term::ReadPassword in the process, so that was good.