You are using a browser which doesn't fully support Cascading Style Sheets. This site will look much better in a browser that supports web standards, but its content is accessible to any browser or Internet device.
The converter package
Different to usual Perl scripts, each PerlPoint converter should declare its own namespace, which is by convention
PerlPoint::Converter::<converter name>
.
# declare script package package PerlPoint::Converter::pp2sdf;
The background of this convention is the way
Active Contents is implemented.
Active Contents means PerlPoint source parts made from embedded Perl. To make document source sharing as secure as possible, and configurable to PerlPoint users, this embedded Perl can be evaluated in a compartment provided by the
Safe
module.
Safe
executes passed code in a special namespace, to suppress access to "unsafed" code parts. It is arranged that the
executed code itself sees this namespace as
main
. So the embedded code uses
main
, which is in fact the special compartment namespace
different to
main
.
OK. That's no problem. But unfortunately not all code can be executed by
Safe
. It is different to use
sort
and to load modules, for example. That's why current versions of the frameset allow to execute Active Contents by
eval()
alternatively.
Now, if a document author writes Active Contents, he's not necessarily aware of how this embedded code will be executed. He doesn't know about
Safe
and
eval()
, so PerlPoint has to arrange that the code can be executed
both ways. Because it cannot modify
Safe
, it has to deal with
eval()
, so it makes it working in
main
. This means that embedded user code will access
main
, and that's why
main
should not be used by a converter itself.