Kashif Salman wrote:
I got this example code from the book "CGI Programming with Perl"

#!/usr/bin/perl -wT

use strict;
use CGI;

my $q = new CGI;
print $q->header( "text/plain" );

print "These are the HTTP environment variables I received:\n\n";

foreach ( $q->http ) {
    print "$_:\n";
    print "  ", $q->http( $_ ), "\n";
}


Running this CGI script I get the expected output but I also get this
error in my Apache error.log file;
Use of uninitialized value in pattern match (m//) at (eval 11) line 3.
Use of uninitialized value in transliteration (tr///) at (eval 11) line 4.

The -w switch enables warnings dynamically, and apparently CGI.pm isn't 'warnings safe'. To get rid of those warnings, you can replace the -w switch with the warnings pragma, which is lexically scoped.

    use warnings;

OTOH, is there really any good reason to bother with a CGI.pm method for this task?

    print "$_\n  $ENV{$_}\n" for grep /^HTTP_/, keys %ENV;

--
Gunnar Hjalmarsson
Email: http://www.gunnar.cc/cgi-bin/contact.pl

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


Reply via email to