470,599 Members | 1,499 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 470,599 developers. It's quick & easy.

uninitialized value in pattern match

rk
Hi,

I'm a beginner for perl/cgi programs and i tried to write a cgi script
and when i ran it, i got the following error. But when i verified it
from the book i typed exactly whatever it is there and i checked other
examples too. I did't get any clue.Can someone please help me on this.

#!/usr/bin/perl

use warnings;
use strict;
use CGI qw( :standard );

print redirect( "http://localhost/cgi-bin/auto/submitReport.html")
unless para
m( "name" );

my $visitor_name = param("visitor_name");
my $visitor_email = param("visitor_email");
my $date = param( "date" );
my $time = param( "time" );

print header();

print start_html( -title => "Reports" );

if ( $visitor_name =~ /^\w+$/ ) {
print "<p>Name: \L\u$visitor_name.</p>";
}

if ($visitor_email = ~ /^\w+$/ ) {
print "<p>E-mail: \L\u$visitor_email.</p>";
}

if ( $date =~ m#^(1[012]|0?[1-9])/([012]?\d|3[01])/(\d\d)$# ) {
print "<p>Date: $1 / $2 / $3.</p>";
}

if ( $time =~ m#^(1[012]|[1-9]):([0-5]\d):([0-5]\d)$# ) {
print "<p>Time: $1: $2: $3.</p>";
}

print end_html();

---------------
Here are the errors i got.

perl submitReport.pl
Status: 302 Moved
location: http://localhost/cgi-bin/auto/submitReport.html

Content-Type: text/html; charset=ISO-8859-1

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
lang="en-US"><head><title>Seahaven QA Status Reports</title>
Use of uninitialized value in pattern match (m//) at submitReport.pl
line 22.
Use of uninitialized value in pattern match (m//) at submitReport.pl
line 26.
Use of uninitialized value in pattern match (m//) at submitReport.pl
line 30.
Use of uninitialized value in pattern match (m//) at submitReport.pl
line 34.

Thanks,
rk
Jul 19 '05 #1
1 15163
rk wrote:

my $date = param( "date" );
my $time = param( "time" );
What's the point with submitting date and time? (You can have the
script grab them without input.)
Here are the errors i got.
<snip>
Use of uninitialized value in pattern match (m//) at
submitReport.pl line 22.


<snip>

Those are not errors. They are warnings, letting you know that the
submit form didn't include the expected fields.

A standard way to get rid of such warnings is to do:

my $visitor_name = param("visitor_name") || '';

etc., but that method should only be used when it's normal that a
variable else can be used without having been initialized. In this
case you'd better fix the submit form instead.

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

Jul 19 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

4 posts views Thread by Pat Turner | last post: by
2 posts views Thread by laredotornado | last post: by
19 posts views Thread by konrad Krupa | last post: by
3 posts views Thread by konrad Krupa | last post: by
3 posts views Thread by zcabeli | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.