嗨,我对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..."
答案 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之类的内容。一旦开始使用它,您将获得所有好处,例如修剪前导和尾随空格的能力。