2011-01-11 4 views
0

내 CGI 펄 스크립트에서이 작업을 수행 :펄 CGI, 바르 대 PARAM와 차이

my %USER_HTML_INPUT = Vars(); 
나는 하나의 키에 할당 된 데이터의 배열이있는 경우는 다음과 같이됩니다 것으로 나타났습니다

:

$VAR= {'tempvalue' => '0�25�85�125' }; 

@DATA = param ('tempvalue'); 값을 배열로 나눕니다.

param 함수를 사용하지 않고 어떻게 동일한 작업을 수행 할 수 있습니까? 당신은 정말, 정말 param없이이 작업을 수행하려면

+1

수 없습니다. Vars()를 호출하면 입력을 해시로 변환하고 값 문자열을 만듭니다. param() 함수를 사용하는 것이 잘못된 이유는 무엇입니까? Vars()를 사용하는 것은 일반적으로 나쁜 습관으로 간주됩니다. – Cfreak

+0

내 perl 스크립트는 noncgi 스크립트로 여러 기능을 수행해야합니다. Vars를 사용하여 하나의 최상위 레벨 호출을하면 더 쉬울 것입니다. – Gordon

+0

'param()'은 명령 행에서 정상적으로 작동합니다 ... – CanSpice

답변

2

, 당신은 (테스트되지 않은) 같은 것을 시도 할 수 :

my $vars = Vars(); 
my %USER_HTML_INPUT = map { $_ => [ split(m{\0}, $vars->{$_}) ] } keys %$vars; 

하지만 약간 덜 추한 :

my %USER_HTML_INPUT = map { $_ => [ param($_) ] } param(); 

훨씬 깨끗하지만 , 필요한 매개 변수에 param을 간단하게 사용하십시오.

또한 명령 줄에서 CGI.pm을 사용하여 CGI 매개 변수를 스크립트에 전달하는 방법을 보려면 CGI 설명서의 DEBUGGING 절을 읽으십시오.

+0

위대한, 그것은 나를 위해 일한다! – Gordon