Do you really need to access all those commands? E.g. perl can do anything awk can do, you might use DBI/DBD::Oracle instead of sqlplus, File::Find instead of find; opendir, readdir, and maybe stat or one of the -X operators (I see more code that does 'ls -l' and cuts out the file size than I care to) instead of ls; @INC and -x instead of which...
I do write scripts occasionally which access unix commands, but the last time I did that, the command was 'patch', and there didn't seem to be anything on CPAN, and it saved alot of perl programming. And maybe if you have a sqlplus script which outputs a formatted report, I might keep that, since it would be alot of work to redo it in perl. Otherwise I'd look at what you really need.