uninitialized value in pattern match

Discussion in 'Perl' started by rk, Dec 7, 2003.

  1. rk

    rk Guest

    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
    rk, Dec 7, 2003
    #1
    1. Advertising

  2. 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
    Gunnar Hjalmarsson, Dec 7, 2003
    #2
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. gilgames

    uninitialized value in pattern match

    gilgames, Jul 11, 2003, in forum: Perl Misc
    Replies:
    0
    Views:
    90
    gilgames
    Jul 11, 2003
  2. Xzanron
    Replies:
    2
    Views:
    142
    Anno Siegel
    Oct 19, 2005
  3. Jess
    Replies:
    2
    Views:
    163
  4. Replies:
    7
    Views:
    88
    Anno Siegel
    May 20, 2006
  5. A. Farber
    Replies:
    21
    Views:
    543
    Bart Lateur
    Jan 31, 2009
Loading...

Share This Page