i'm working on the issue with chdir, which we cannot use in 2.0, because it's not thread-safe.
The issue of require() and friends when they use relative paths is easily resolved by pushing the script's dir as the first element of @INC. The big issue is the open() call when it tries to open a file relative to the script's dir. We could override open() but its args are very complex which will require an expensive parser, so it's a no-no. A simpler solution is to tell the user to use full paths everywhere. This can be done in a portable way using this code use File::Basename (); my $cwd = File::Basename::dirname($0); we could supply a wrapper to shorten things and cache the value for registry scripts to speed things up, so the user will call: ModPerl::Registry::cwd(); to make it back-compatible with 1.x we need to include this wrapper at least in 1.27 that's about to be released. PerlRun and other scripts can still use ModPerl::Registry::cwd(); or should we use some longer sub name and export it into the script's namespace? In any case if the wrapper is used, the scripts won't work under mod_cgi. On the other hand if File::Basename::dirname() is used explicitly the script will still work with mod_cgi. The worst thing about this workaround, no matter how we implement it, is that users will have to modify their code to make this work. So the cool idea of "run your scripts unaltered" doesn't work any more :( May be we can still have a special mode in which chdir() is performed if running under non-threaded mpm? For those who need a transition period? __________________________________________________________________ Stas Bekman JAm_pH ------> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]