행렬을 하나의 perl 파일에서 다른 백틱으로 명령 줄을 사용하여 전송하고 싶습니다. 첫 번째 파일 펄에 perl 명령 행에서 행렬 사용
, source.pl :use warnings;
use strict;
my @matrix = (
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
);
my $results = `perl other_file.pl @matrix`; #option 1
# my $results = `perl other_file.pl '@matrix'`; #option 2
print $results;
에 other_file.pl
use strict
use warnings
my @matrix_other = $ARGV[0];
print "mat_adress = ".$matrix_other[1][2]."\n";
발사 source.pl 후, 터미널 출력 : 옵션을
- 1 : sh : 1 : 구문 오류 : "(예기치 않은
- 옵션 2 : 사용할 수 없음 배열 심판으로 트링 ("ARRAY (0x6c0cb8) ARRAY (0x6df410)"...) 나는 또한 시도했습니다 other_file.pl 라인 5.
에서 사용되는 "엄격한 심판은"성공하지 Symbolic references를 사용하는 동안 other_file.pl에 (출력 : "other_file.pl에서 ARRAY 참조가 아닙니다")
어떤 생각? 고마워요.
추신 : 간단한 변수 $ var에 문제가 없습니다.
2 차원 배열을 그런 문자열로 보간 할 수 없습니다. 'ARRAY (0x6c0cb8)'는 문자열 화 된 배열 참조입니다. 또한, 쉘을 통해 다른 변수를 다른 Perl 프로그램으로 전송할 수 없습니다. 원하는 경우, Perl을 사용하여 프로그램을 연결해야합니다. – TLP
명령 행에서 전송하기 위해 렌더링하고 구문 분석해야 할 방법 중 하나입니다. '저장 가능'과 같은 것이 트릭을 할 수 있을까요? – Sobrique