uninitialized value in pattern match

R

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
 
G

Gunnar Hjalmarsson

rk said:
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.

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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,997
Messages
2,570,239
Members
46,827
Latest member
DMUK_Beginner

Latest Threads

Top