Hi All

I am a perl newbie.

I have a small perl script that is actually a cgi-bin script. I am told that
until a recent server change over it ran fine however now it produces no output.
I have tried running it from a command line and redirecting the input it would
have received as a cgi-bin script from a text file. I am getting a couple of
"Use of uninitialized value in concatenation (.) or string" errors and I can not
see why.

The script is as follows

#!/usr/bin/perl
#
# log-errors cgi-bin script to display the last 2000 lines of an error log.
# domain is the domain name of the virtual apache server
#

    require '/www/server/cgi-bin/cgi-lib.pl';
    &ReadParse(*in);
    $domain = $in{'domain'};
    print "Content-type: text/html\n\n";
    print "<html><head><title>Exodus Web Server Log</title></head>\n";
    print "<body link=\"blue\" vlink=\"blue\">\n";
        print "<font size=\"4\"><b>Last 2000 Lines of the Error log for: 
$domain</b></font><br>\n";
        print "<font size=\"1\"><br></font>Go to <a href=\"#bottom\"><i>End of 
log</i></a><br><br>\n";
        $tail = `tail -n2000 /var/log/httpd/$domain-error_log 2>/dev/null | 
tac`;
        $tail =~ s/</&lt\;/g;
        $tail =~ s/>/&gt\;/g;
        print "<pre>$tail<\/pre>\n";
        print "<a name=\"bottom\"></a>";
        print "<br><b>End of log</b><br>\n";
    print "</body></html>\n";
    exit 0;


When I run the script from the command line with the command

perl -w  log-err* < test.txt

Where test.txt contains domain=www.resmaster.com

I get the following output

Content-type: text/html

<html><head><title>Exodus Web Server Log</title></head>
<body link="blue" vlink="blue">
Use of uninitialized value in concatenation (.) or string at log-errors line 10.
<font size="4"><b>Last 2000 Lines of the Error log for: </b></font><br>
<font size="1"><br></font>Go to <a href="#bottom"><i>End of log</i></a><br><br>
Use of uninitialized value in concatenation (.) or string at log-errors line 12.
<pre></pre>
<a name="bottom"></a><br><b>End of log</b><br>
</body></html>

It seems that the value of the domain is not being passed in correctly and it is
not being passed down through the script.

When I run the script as a cgi-bin script called from a web page I get the html
code produced by the print statements but I get nothing from the $tail variable.
This is what I would expect as I get nothing between the <pre></pre> tags when I
run it from a command line.

I would appreciate any help in sorting out this problem.



Regards,
Richard Luckhurst                      



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to