2012-11-20 3 views
0

안녕하세요, 저는 Perl을 처음 사용하고 있습니다. 아래 코드에서 볼 수 있듯이 쿼리 문자열에서 "page"매개 변수를 가져와야합니다. 또한 매개 변수 값의 유효성을 검사하려고합니다. 매개 변수가 쿼리 문자열에 없거나 숫자가 아닌 경우 1을 $ current_page에 할당하고 그렇지 않으면 $ current_page에 값을 할당하십시오. 펄에서는 어떻게 할 수 있습니까? 도와주세요. PARAM이없는 경우querystring에서 매개 변수의 유효성을 확인하십시오.

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..." 

답변

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 같은 것을 할 수 있습니다 : 그것은 뭔가 같은 것입니다. 일단 사용을 시작하면 예를 들어 선행 및 후행 공백을 다듬을 수있는 기능을 포함하여 모든 이점을 얻습니다.

+0

'//'는 perl v5.10이 필요합니다. 이전 버전의 perl을 사용하고 있다면'||'를 사용할 수 있습니다. – mob

+0

0으로 보이고 빈 문자열은 어쨌든 허용되지 않으므로'||'로 전환했습니다. – ikegami

관련 문제