I certainly agree with attaching a common prefix to a library, but what 
if I am already dealing
with a bunch of modules written without prefix, and enough application 
code using those packages ?
I suppose I could change the code, or alias names in symbol table, or do 
some other trick;
I just figured that one extra directive, plus one patched line was a 
cheap solution to my
problems.

I guess if nobody else sees any value in it, I'll just keep the private 
patched version for myself :-)

Stas Bekman wrote:

> Harry Danilevsky wrote:
>
>> Two reasons :
>>
>> 1.  My site-specific modules don't necessarily have a common 
>> namespace (or even several namespaces);
>> they just all live in /site/lib. Without a ReloadDirectories-like 
>> filter every time I add another module,
>> say, /site/lib/Reports.pm I'll need to add Reports to ReloadModules, 
>> and restart the server. 
>
>
> That's the thing. It's a good idea to alway use some prefix package 
> name in all your modules, to avoid future clashes with other modules. 
> And it automatically solves your problem with Apache::Reload.
>
>> 2.  Much more obscure,  related to HTML::Mason. As I mentioned in my 
>> post:
>>
>> In Mason components are precompiled and cached, so that perl code 
>> doesn't have to be re-parsed for every request.
>> The cached files are require(d), and they end up in %INC.
>> It appears from ReloadDebug's output that those cached files are 
>> being checked by Apache::Reload,
>> and if they have been modified - they'll be reloaded. The problem is, 
>> if the code has a syntax
>> error, that error will occur when Apache::Reload re-require()s that 
>> file, and the error message
>> will be printed to a log file, not to the browser - which is what 
>> Mason would do.
>> So your browser will simply tell you that 'Internal error has occurred'
>> ReloadDirectories will simply ignore them, and let Mason deal with 
>> modified files.
>
>
> If you tell Apache::Reload to look only at certain namespaces, this 
> problem doesn't exist anymore.
>
>> Am I still missing something ?
>>
>>
>> Harry Danilevsky
>> [EMAIL PROTECTED]
>>
>> Stas Bekman wrote:
>>
>>> [...]
>>>
>>>> Anyway, I decided to add another directive to Apache::Reload
>>>>
>>>> PerlSetVar ReloadDirectories "/site/lib /usr/local/apache/conf"
>>>
>>>
>>>
>>>
>>> Apache::Reload allows you to define which modules to reload using 
>>> the patterns like so:
>>>
>>> PerlSetVar ReloadAll Off
>>> PerlSetVar ReloadModules "Apache::* My::*"
>>>
>>> Is there any reason why you cannot use this approach?
>>>
>>> I've no objection to your proposal, just wondering whether the 
>>> existing features can be used instead.
>>>
>>> __________________________________________________________________
>>> 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
>>
>>
>>
>>
>
>
>


Reply via email to