I've used Devel::REPL but found too many dependencies. I tried PerlConsole and Perl::Shell but found them lacking all the features I wanted. I rolled my own "borrowing" code from the above. It's not on CPAN since it's not that good, but you can find here if you're interested:
https://github.com/vinsworldcom/PPC/tree/master/lib/PerlApp
It's included as part of a larger Perl project which has the .pl that provides the shell for that specific project. You could of course use that as an example to write your own.