Some progress, but still not working.

Turns out that the problem file "calendar.cgi" was using a locally installed liteweight version of template.pm.

I renamed the file CalTemplate.pm and put it into the site/lib/HTML folder.
I changed the package name in this file to CalTemplate.pm

The %INC shows:
For HTML/CalTemplate.pm value is C:/Perl/site/lib/HTML/CalTemplate.pm

The use statement in calendar.cgi is
use HTML::CalTemplate;

The use directive finds and appears to load the file, but the same line as before can't find initialize [Tue May 06 10:15:30 2014] [error] Can't locate object method "initialize" via package "HTML::CalTemplate" (perhaps you forgot to load "HTML::CalTemplate"?) at D:/www/wc-admin.com/cgi-bin/event_calendar/calendar.cgi line 131.\n

The offending line 131 is
my $tmpl = CalTemplate->initialize( $directives->{'template'} || 'calendar.html' );

Obviously, my understanding about mod_perl and now OOP is limited, so any comments?

Fraser

----- Original Message ----- From: "G. Wade Johnson" <[email protected]>
To: <[email protected]>
Sent: Monday, May 05, 2014 11:40 AM
Subject: Re: [pm-h] mod perl and calendar.cgi


On Mon, 5 May 2014 09:09:11 -0500
"Fraser Baker" <[email protected]> wrote:

Hi:

OK, I had two copies of HTML::Template, one in Site and the other
came with PERL. I removed the one in Site and this made no difference.

Reading a bit, always dangerous, I find that find that the page
http://www.devshed.com/c/a/perl/getting-started-with-the-perl-template-toolkit/
talks about installing Apache::Template.

Is this what I need to do? I really need to resolve this issue. There
must be someone out there that can help me resolve this.

Hi Fraser,

Template Toolkit is completely different from HTML::Template.
Apache::Template works with Template Toolkit, so installing it would
not help your issue. (Unless you wanted to rewrite everything you are
doing in Template instead of HTML::Template. <jk/>)

G. Wade

Fraser

----- Original Message ----- From: "B. Estrade" <[email protected]>
To: "Houston.pm located in Houston, TX." <[email protected]>
Sent: Friday, April 25, 2014 7:51 PM
Subject: Re: [pm-h] mod perl and calendar.cgi


> On Fri, Apr 25, 2014 at 1:44 PM, G. Wade Johnson
> <[email protected]> wrote:
>> On Fri, 25 Apr 2014 12:09:59 -0500
>> "Fraser Baker" <[email protected]> wrote:
>>
>>> OK:
>>>
>>> For the server that is NOT running mod_perl
>>> INCLUDED DATA ARRAY is
>>> Term is C:/Perl/site/lib
>>> Term is C:/Perl/lib
>>> Term is .
>>>
>>> For the server that IS running mod_perl
>>>
>>> INCLUDED DATA ARRAY is
>>> Term is D:/www/wc-admin.com/cgi-bin
>>> Term is C:/Perl/site/lib
>>> Term is C:/Perl/lib
>>> Term is .
>>> Term is C:/Program Files/Apache Software Foundation/Apache2.2
>>
>> Okay. This gives us some stuff to work with.
>>
>> Check each of the directories in the two sets of paths for
>> HTML/Template.pm. This might show more than one HTML::Template
>> module installed.
>
> Or none at all. Make sure HTML::Template is installed.
>
>>
>> Next, check to see if you have the same version of HTML::Template
>> on both machines. I had somehow missed earlier that these were two
>> separate machines. (Brain fail)
>>
>
> /me too... oopsie
>
>> You'll want to verify that there is only one version of
>> HTML::Template on each server and that the versions on the two
>> servers match.
>>
>> If the one that works is older than the one that doesn't,
>> upgrading will require code changes to match the newer module. If
>> the one that works is the newer version, you can upgrade the
>> version and the problem should be solved.
>>
>> G. Wade
>>
>>
>>> I don't see anything here. Where to go from here?
>
> Is this mod_perl or mod_perl2? I am not familiar with any of this on
> Windows unfortunately.  You could create a barebones script that
> just tries to include HTML::Template using one directory in @INC at
> a time. mod_perl also does funky things with applications that are
> not meant to be run persistently - so if this is the case there are
> request "handlers" that are meant to restart or recompile/restart
> for each request.
>
> Unfortunately it could be a tedious process to track it down, but I
> think wade's put you on the right track.
>
> Brett
>
>>>
>>> Fraser
>>>
>>>
>>> ----- Original Message -----
>>> From: "G. Wade Johnson" <[email protected]>
>>> To: <[email protected]>
>>> Sent: Friday, April 25, 2014 11:25 AM
>>> Subject: Re: [pm-h] mod perl and calendar.cgi
>>>
>>>
>>> > On Fri, 25 Apr 2014 08:23:59 -0500
>>> > "Fraser Baker" <[email protected]> wrote:
>>> >
>>> >> Hi Brett:
>>> >>
>>> >> Turns out that for the mod_perl server, there are some 165
>>> >> entries in %INC whereas for the not mod-perl server there is
>>> >> only one.
>>> >
>>> > Hi Fraser,
>>> >
>>> > There are 2 different things here.
>>> >
>>> > @INC contains a list of directories that perl searches for
>>> > modules. %INC contains entries for each module that is loaded.
>>> >
>>> > I believe the suggestion was to check @INC to see if a module is
>>> > loaded from a location you are not expecting.
>>> >
>>> > G. Wade
>>> >
>>> >> The %ENV is larger by about 5 entries on the mod_perl machine.
>>> >>
>>> >> OK, where do I go from here.
>>> >>
>>> >> Fraser
>>> >>
>>> >> ----- Original Message -----
>>> >> From: "B. Estrade" <[email protected]>
>>> >> To: "Houston.pm located in Houston, TX." <[email protected]>
>>> >> Sent: Tuesday, April 22, 2014 10:15 AM
>>> >> Subject: Re: [pm-h] mod perl and calendar.cgi
>>> >>
>>> >>
>>> >> > Just a hunch, but I'd look to see how mod_perl affected your
>>> >> > environment. namely @INC.
>>> >> >
>>> >> > Brett
>>> >> >
>>> >> > On Tue, Apr 22, 2014 at 9:47 AM, Fraser Baker
>>> >> > <[email protected]> wrote:
>>> >> >> Hi y'all:
>>> >> >>
>>> >> >> Before I added mod-perl, calendar.cgi worked.
>>> >> >>
>>> >> >> After mod perl I get this error:
>>> >> >>
>>> >> >> [Tue Apr 22 09:28:35 2014] [error] Can't locate object
>>> >> >> method "initialize"
>>> >> >> via package "HTML::Template" at
>>> >> >> D:/www/wc-admin.com/cgi-bin/event_calendar/calendar.cgi line
>>> >> >> 131.\n
>>> >> >>
>>> >> >> The offending line in calendar.cgi is:
>>> >> >>
>>> >> >> my
>>> >> >>
>>> >> >> $tmpl =
>>> >> >> HTML::Template->initialize( $directives->{'template'} ||
>>> >> >> 'template.html' );
>>> >> >>
>>> >> >> I searched template.pm and don't find a function named
>>> >> >> initialize. I do find
>>> >> >>
>>> >> >> # initialize the template buffer
>>> >> >> sub _init_template {
>>> >> >>
>>> >> >> How do I fix this?
>>> >> >>
>>> >> >> Fraser
>>
>>
>> --
>> If debugging is the process of removing software bugs, the
>> programming must be the process of putting them in.
>> -- Edsger Dijkstra _______________________________________________
>> Houston mailing list
>> [email protected]
>> http://mail.pm.org/mailman/listinfo/houston
>> Website: http://houston.pm.org/
> _______________________________________________
> Houston mailing list
> [email protected]
> http://mail.pm.org/mailman/listinfo/houston
> Website: http://houston.pm.org/

_______________________________________________
Houston mailing list
[email protected]
http://mail.pm.org/mailman/listinfo/houston
Website: http://houston.pm.org/


--
Fortune knocks but once, but misfortune has much more patience.
                                               -- Laurence J. Peter
_______________________________________________
Houston mailing list
[email protected]
http://mail.pm.org/mailman/listinfo/houston
Website: http://houston.pm.org/

_______________________________________________
Houston mailing list
[email protected]
http://mail.pm.org/mailman/listinfo/houston
Website: http://houston.pm.org/

Reply via email to