Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 验证querystring中的参数_Perl - Fatal编程技术网

Perl 验证querystring中的参数

Perl 验证querystring中的参数,perl,Perl,嗨,我对perl非常陌生。正如您在下面的代码中所看到的,我需要从querystring获取一个参数“page”。我还想验证参数值。如果参数不在querystring中或不是数字,则将1分配给$current\u page,否则只将值分配给$current\u page。如何在perl中实现这一点?请帮帮我 use strict; use CGI qw/:standard/; my $querystring = CGI::Vars(); my $current_page = $querystr

嗨,我对perl非常陌生。正如您在下面的代码中所看到的,我需要从querystring获取一个参数“page”。我还想验证参数值。如果参数不在querystring中或不是数字,则将1分配给$current\u page,否则只将值分配给$current\u 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

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;

如果您需要验证多个参数,您可能需要以下内容。一旦开始使用它,您就可以获得它的所有好处,包括修剪前导和尾随空格的能力。

/
需要PerlV5.10。如果您的perl版本比它旧,您可以使用
|
。看起来像是零,而且空字符串无论如何都是不可接受的,所以我切换到
|