验证来自querystring的参数

时间:2012-11-20 22:01:55

标签: perl

嗨,我对perl很新。正如您在下面的代码中看到的,我需要从querystring中获取参数“page”。我还想验证参数值。如果参数不在查询字符串中或不是数字,则将1分配给$ current_page,否则只需将值赋给$ current_page。我怎么能在perl中这样做?请帮帮我。

use strict;

use CGI qw/:standard/;
my $querystring = CGI::Vars();

my $current_page = $querystring->{page};

print $current_page;  # I would get a warning "Use of uninitialized value..."

1 个答案:

答案 0 :(得分:2)

如果缺少参数,这将使用1

my $current_page = $querystring->{page} || 1;
但是,它不会检查以确保它是一个数字。那将是这样的:

my $current_page = $querystring->{page};
$current_page = 1
   if !defined($current_page)
   || $current_page =~ /[^0-9]/
   || $current_page == 0;

如果您需要验证多个参数,可能需要Data::FormValidator之类的内容。一旦开始使用它,您将获得所有好处,例如修剪前导和尾随空格的能力。