ActiveState's attempt to make Perl work with the .NET CLR is a nasty hack. Their “compiler” just bundles up their interpreter DLL and a bytecode version of the script and any dependencies it was able to resolve at “compile time”, and then puts a bit of code on the front to extract all of these to a temporary directory and run them.
It works okay on the surface, but of course it's not going to run on Mono on any platform other than Win32 because of that DLL which is compiled for x86 and Windows.
It is handy to be able to hook into .NET classes from Perl, though, as long as you accept what's going on and just roll with it and don't try to do anything tricky.
This trick would work better if someone could port Perl to IL, but I don't see that happening! ;) I guess the same applies to Python.