So I've been running my shiny new perl module for a couple weeks now without 
any issues.  I call the module (Nav::Ad) four times (header, footer, left, 
right) from each of my "Registry" scripts.  The Registry scripts parse a html 
file and decide whether to execute the module or just print out the HTML like 
so:

my $COLUMN1 = "$ENV{DOCUMENT_ROOT}/column1.shtml";
  if (open (FILE, $COLUMN1)) {
    while (<FILE>) {
      if ( $_ =~ m/printAd.cgi/ ) {
        Nav::Ad::printAd( 'Type=column', 'Logo=y', 'Num=7', 'Sep=y');
      } else {
        print;
      }
    }
    close FILE;
  };


I'm in the process of changing the scripts so that it no longer opens a file 
for each of these.  As it stands now, a new module that contains the text in 
each of the four files has been created.  For example, the HTML in column 1 is 
stored in "$column1", and then:

@Column1 = split $/, $column1
sub printcolumn1 {
  foreach (@Column1) {
    if ( $_ =~ m/printAd.cgi/ ) {
      Nav::Ad::printAd( 'Type=column', 'Logo=y', 'Num=7', 'Sep=y');
    } else {
      print;
    }
  };
}

My problem is that this works fine for several requests, but then it fails.  
And when it fails, ALL four (left,right,top,bottom) of the arrays that have 
calls to "printAd" fail.  Never just one, always all four.  The rest of the 
HTML in the arrays is displayed.

In lieu of the expected HTML, the "SCRIPT_NAME" of the Registry script is 
displayed (e.g. /cgi-bin/script.cgi ).

That's all I can find anywhere to help me.  Am running Apache in debug, nothing 
in the logs.

Again, "script.cgi" is a Registry script, and Nav::Ad:: doesn't change between 
FILE-based and Module-based.  Nav::Ad seems to work perfectly when parsing an 
actual file, but when the file is placed into a string in a module it fails 
after some small number of requests and leaves me clueless as to why.

Insight into this would REALLY be appreciated.  Thanks.




      
____________________________________________________________________________________
Be a better friend, newshound, and 
know-it-all with Yahoo! Mobile.  Try it now.  
http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ 

Reply via email to