That hardly qualifies as a translation. You're just feeding the source verbatim into SQL*Plus. I think what the OP was after is a Perl program that would achieve the same result without using the sqlplus executable.
The question has been asked and answered before, and you can probably find other examples with a little work.
Basically, you can translate all of the query logic into Perl using DBI and DBD::Oracle in a straightforward way, but the formatting capabilities will require some thought. But just copying the whole script to a Perl scalar before feeding it to SQL*Plus is unlikely to benefit anyone. You may as well have suggested the OP use "cat" or "type".
In reply to Re (2): SQLplus code
by VSarkiss
in thread SQLplus code
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |