2012-05-29 2 views
3

일부 해시 참조 (abc.pl)가 포함 된 perl 파일이 있는데이 파일을 다른 perl 파일에서 열어서 Json을 사용하여 json으로 변환 할 수 있습니다. XS. abc.pl을 열려고하면 perl이 텍스트로 읽으며 json으로 변환 할 수 없습니다.perl을 사용하여 외부 파일의 perl 데이터 구조를 읽는 방법

그래서, 다른 perl 파일에서 abc.pl을 읽는 방법을 알고 싶습니다. 따라서 해시 참조가 올바르게 읽혀지고 json으로 변환 될 수 있습니다.

$VAR1 = { 
      'bar' => 2, 
      'baz' => 3, 
      'foo' => 1 
     }; 

당신은 do 기능을 사용하여 구조를 평가할 수 :

+0

해시 참조는 파일에 존재할 수 없습니다. 명확히하십시오. 해시 참조를 반환하는 코드가 포함되어 있다는 의미입니까? – ikegami

+0

파일에 다음과 같은 데이터 구조의 조합이 포함되어 있습니다. abc {z} = {a => "bc", d => "ef", g => [h => {t => "ij"}]}}; – Paul

+0

'$ abc {z}'라고 가정합니다.이 경우 Perl 코드입니다. 파일이'\ % abc'로 끝나고 friedo의 코드를 사용할 수 있는지 확인하십시오. 이 고맙습니다 – ikegami

답변

4

이 같은 형태의 데이터 파일을 가지고 가정. 예 :

use strict; 
use warnings; 

use JSON::XS; 

my $data = do 'abc.pl'; 
my $json = encode_json $data; 

print $json; 
+0

이 예를 들어, 일 ...하지만 파일이 $ VAR1 {VR1} = { '바'=> 2, '바즈'=> 3, 'foo는 같은 많은 복잡한 데이터 구조를 포함하는 경우 어떤 '=> 1 }; $ VAR1 {vr2} = { 'bar'=> 2, 'baz'=> 3, 'foo'=> 1 }}; 등등 – Paul

+0

그러면 어떻게 든 분할하고 결과 문자열에'eval'을 사용하고 싶을 것입니다. – friedo

+0

고맙습니다 ... 시도 할 것입니다 – Paul

관련 문제