And what about SQL? If SQL better handled recursion and multi-values, it could be a good substitute for Prolog. You may not realize it, but if you're good at SQL, you're already well on your way to learning logic programming.
Since you already know imperative programming and you are comfortable with Perl's OO capabilities, you're well on your way to understanding imperative, objective, logical and functional programming. The fact that many of us tend not to recognize those features of these tools means we're only selling ourselves short.
Perl only? I don't buy it.