It is essentially impossible for reasons listed at
On Parsing Perl. However tools like B::Deparse are able
to do a "95%" job of parsing Perl, and you might be
able to build a useful tool on top of that.
Also Perl 6 is supposed to have a saner syntax when it
comes...