I'm not opposed to modules by any means. Though usually, for something small like this, I'd rather not introduce more dependencies.
If there was something on CPAN that did what I was looking for, I would have just used it.
As it stands, there's not. Which has provided some nice mental exercise. Which is good because I've been a tad stagnant. Outside of some software for my car, seems like I've been doing the same thing over and over forever.