0

嗨,我对 perl 很陌生。正如您在下面的代码中看到的那样,我需要从查询字符串中获取参数“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..."
4

1 回答 1

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的东西。一旦你开始使用它,你就会得到它的所有好处,包括修剪前导和尾随空格的能力。

于 2012-11-20T22:04:12.600 回答