in reply to alternative way to subs

Since your programs are obviously decoupled enough, that there is no problem to shell out via system() to use them, I would change this only if you find that you are running into performance problems (such as when doing the system call frequently in a loop). After all, you already have your prog*.pl and they work, so I would be reluctant to change things without compelling reason. Also, it makes the prog*.pl be useful as individual pieces callable from the commandline - an advantage which you would loose when turning them into a sub.
In case you eventually think about adding a new prog134 to your existing set, you might, however, consider the following alternative:
Write a module SupaDupa134.pm containing the code of your new piece of marvel as a sub mynewsub134(). Use this module in your main application, where you can call the sub. In addition, write a standalone Perl program prog134.pl which doesn't do much more than
use SupaDupa134 qw(mynewsub134); mynewsub134(@ARGV);
Doing this, you have all the advantages of a sub, plus a command line version for your own use, but still only one place to maintain the actual code.

HTH,
Ronald
Ronald Fischer <ynnor@mm.st>