2014-06-17 3 views
0

JavaScript로 Perl 코드를 통합 하려다가 Perl에 저장 한 배열의 출력을보고 싶을 때 문제가 발생했습니다. 다음 코드는 저장 한 배열 내에서 적절한 요소를 제공하지만 JavaScript 내의 요소를 볼 수는 없습니다.자바 스크립트 변수에 Perl 배열 할당

my @list_of_vendors; 
while(!$resultSet->EOF) { 
push @list_of_vendors, $resultSet->Fields("vendor")->Value; 
    $resultSet->MoveNext; 
} 

print "The First Vendor is: " . $list_of_vendors[0]. "\n"; 

이 내가이 나에게 3D Systems is the same as 3D Systems을 줄 것이라고 생각

print <<ONE; 
<html> 
<body> 
<h4> Test Vendor Array Javascript </h4> 

<p id="demo"</p> 

<script type="text/javascript" language="JavaScript"> 
var myVendorArray = @list_of_vendors; 
document.write('<p> $list_of_vendors[0] is the same as myVendorArray[0] </p>'); 

</script> 
</body> 
</html> 
ONE 

다음 코드는 나에게 내가 원하는 결과를 제공하지 않는 것 The First vendor is: 3D Systems ... 인쇄합니다하지만 HTML 빈을 제공합니다 화면.

누구든지 내가 잘못하고있는 것을 지적 할 수 있습니까? 또는 올바른 방향으로 메모장 + + 또는 일부 다른 유용한 IDE를 사용하여 이것을 디버깅 할 수 있습니다. 무리 감사!!

+0

"작동하지 않음"= ??? – AKHolland

+0

죄송합니다 반드시 작동하지 않습니다하지만 내게주는 줄 생각하는 결과를 제공하지 ... 나는'3D 시스템은 HTML 페이지에서'3D 시스템 '과 동일하다는 것을보고 싶다. 그러나 웬일인지 이것은 보이지 않습니다 ... – koala421

+2

"소스보기"를 시도해 실제로 생성 된 HTML을 보았습니까? 나는 그 문제가 아주 명백 할 것이라고 생각한다. . . – ruakh

답변

3

코드의 heredoc은 모두 Perl로 보간되지만 클라이언트는 JavaScript로 해석합니다. 당신이

@list_of_vendors = ("Alice","Bob","Charlie"); 
... 
print <<EOF; 
... 
<script> 
var list_of_vendors = @list_of_vendors; 
... 
EOF 

를 작성하는 경우 그래서 클라이언트가 볼 것은

var list_of_vendors = Alice Bob Charlie; 

펄 같은 당신, 그래서 쉽게 자바 스크립트에 의해 이해 된 JSON 표기법에 펄 데이터 구조를 변환하는 아주 좋은 시설을 갖추고있다

:

use JSON; 
$list_of_vendors_json = encode_json(\@list_of_vendors); 
... 
var list_of_vendors = $list_of_vendors_json; 
... 

이 경우 브라우저가 같은 것을 볼 것입니다 : 같은 것을해야

var list_of_vendors = ["Alice","Bob","Charlie"]; 

나머지 코드는 의도 한대로 작동합니다.

+0

이 두 가지 작업을 위해 JSON을 다운로드해야합니까, 아니면이 기능을 만들 수있는 펄 내에서 또는 일부 유형의 add- 이걸로? – koala421

+1

'cpan'으로'JSON' 모듈을 설치하십시오. – mob

+0

작동합니다! ... 감사합니다. – koala421

관련 문제