When I was child (not really a child), I thought about designing a programming language (which I called Z++) that supported multi-paradigms. In those times, this wonder language would support Smalltalk, Prolog, and Lisp, and programs could promiscously mix these languages with extraordinary results. Now Ovid allows us to write Prolog in Perl which adds to the craziness of CPAN. And there is Perl 6 which supports grammars (DCGs belong to the past), Parrot, Pugs. That's a dream development community.
Well, today's your lucky day. There's a lot of interest in bringing logic programming to Perl 6, but the decision has been made to not delay the implementation of the language just for this little understood paradigm (at least, this is my understanding of the situation). However, Perl 6 rules and grammars will allow us to rewrite the language. This means you can design your ideal logic programming syntax for Perl 6 and have the language support it (something you appear to be aware of).
The current idea that Luke and I have come up with (mostly Luke) is to find a way to uniquely declare logic variables, facts, and rules.
my ($`x, $`y, $`z);
assert append -> { [], $`x, $`x }
...
So long as you have a clear, unambiguous grammar, it should be feasible to tie the above code into a module.