0

こんにちは私はperlにとても慣れていません。以下のコードでわかるように、クエリ文字列からパラメータ「ページ」をフェッチする必要があります。また、パラメータ値を検証したいと思います。パラメータがクエリ文字列または数値でない場合は、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 に答える