Please keep in mind that Safe.pm is not safe. By returning the right values from the safe compartment it's quite possibly to "break out" of it. If I recall correctly it requires that the main program uses the return value; but the Safe compartment wouldn't be much use without returning anything, huh?
Someone with more clue than me can probably provide more insight, but I didn't see this brought up in any of the earlier Safe.pm discussions so I thought I would mention it.
ask bjoern hansen, http://ask.netcetera.dk/ !try; do();