Your 'problem' has nothing to do with perl. Your OS (and every other one that I know of) is designed to make it impossible for a child to make changes to its parent's environment. If your 'workaround' is truly able to do this, it is exploiting a bug. Do not use it. This design choice is intended to prevent unexpected behavior of a program due to the history of other programs.