2014-07-05 7 views
2

CGI::Application을 기본으로 사용하는 코드 조각이 있지만 올바르게 작동하지 않습니다.CGI :: Application param() 설정하지 않음

$Template->param()을 통해 설정하려고 할 때 겉으로보기에는 설정되지 않습니다. $Template$self->load_tmpl($template);

같다 내가 저장하고 싶은 부분은 다음과 같습니다

$Template->param('symbols' => \%a_hash_ref); 

나는 \%a_hash_ref이 예상 값을 포함 알고있다. 내가

$Template->param('Hey!xD' => 'Something'); 

는 저장되지 않습니다 할 경우, 또한

{'symbol' => 'DTX'},{'symbol' => 'QFLD'} 

을하지만, $Pagination도 hash_ref입니다

$Template->param($Pagination); 

는 않습니다 : 그것은 유사한 형태를 갖는다.

나는 모든 값이 무엇인지 알아야하며 작동해야하는 간단한 문자열로 시도했지만 설정되지 않았습니다.

my @params = $Template->param(); 
die Dumper \@params; 

그것이 설정해야 모든 변수를 출력 만합니다 ('Hey!xD' 문자열을 포함) 예상되는 사람이없는 : 나는 실행이 때문에 알고있다. 이 다이 덤퍼는 값을 설정하려고 시도하기 때문에 코드를 실제로 실행한다는 것도 알 수 있습니다. ;

$ (문서) .ready (함수() {; mainFunction ('[% 심볼 %])})

템플릿 파일 코드의 일부를 포함

도움을 주시면 감사하겠습니다.

EDIT :

[ { '날짜'=> '2006년 7월 5일' 'avg_gain'=> 미확정 :

이것은 PARAM 부여되는 무엇 , 'bollinger_mid'=> '32 0.80000 ' '심볼 '=>'BBQ ' }, { '날짜 '=>'2006년 4월 4일 ' '=> 미확정, 'bollinger_mid avg_gain '=> '34 .55656', '기호'=> 'AAPL' } ... ]

이 실제로 응용 프로그램 템플릿 기본적으로 사용 CGI :: html로 :: 템플릿 문제입니다

답변

2

.

load_tmpl 전화에서 die_on_bad_params이 0으로 설정되어 있습니까? 로드 된 템플릿 (docs here)에없는 매개 변수를 설정하려고하면 HTML :: Template이 기본적으로 종료되어야합니다.die_on_bad_params이 비활성화되면 알 수없는 템플릿 매개 변수가 무시되고 무시되는 설명 동작이 발생합니다.

또한 according to the docs, TMPL_LOOP은 hashref의 배열 참조를 param 인수로 사용합니다. 아마 이런 식으로 당신의 "상징"매개 변수를 전달하는 데 도움이 될 것이다 :

my $symbols = [{ symbol => 'DTX' },{ symbol => 'QFLD' }]; 
$Template->param(symbols => $symbols); 

을 당신이 확실히 말할 쉬울 것이다 오류를 보여주는 샘플 템플릿과 작은 스크립트를 작성합니다.

+0

예, 0으로 설정했습니다. 감사! 아직 템플릿에없는 param을 설정하려고 할 때 템플릿이 죽는다면 어떻게 그 param을 설정할 수 있습니까? 문서를 읽었는데 왜 $ Template-> param ('symbols')이 존재하지 않는지 알 수 없습니다. 내 템플릿에는 다음과 같은 내용이 있습니다. fetchQuoteData ('[% symbol %]'); < /TMPL_LOOP> – Sismetic

+0

안녕하세요, 도울 수있는 문서의 'TMPL_LOOP' 정보를 추가했습니다. – wes

+0

물론 도움을 주셔서 감사합니다. 분명 hashref의 배열 참조를 보냅니다. 코드를 편집으로 넣을 것입니다 – Sismetic