이것은 외계 문제 제기를 줄이기위한 시도입니다. "Why don’t my system calls work in the Perl program I wrap with pp?" 리눅스 시스템에서 간단한 Perl 스크립트를 만들었습니다 :pp (PAR)는 어디에서 추가 파일 (-a)을 풀었습니까?
new-net:~/scripts # cat ls_test.pl
@ls_out = `ls -l`;
map { print "$_\n" } @ls_out;
$out = `sh out_test.sh`;
print "$out\n";
이 스크립트는 간단한 쉘 파일을 호출합니다.
new-net:~/scripts # cat out_test.sh
echo "I'm here"
pp 쉘 스크립트와 함께 Perl 스크립트를 ls_test에 압축하려면 다음과 같이 입력하십시오.
그렇지 않으면 빈 디렉토리에서 압축 파일을 실행하면 쉘 스크립트가 없습니다.
new-net:~/test # ./ls_test total 3391 -rwxr-xr-x 1 root root 3466177 Jul 13 16:41 ls_test sh: out_test.sh: No such file or directory
쉘 스크립트를 디렉토리에 복사하면 압축 된 스크립트가 예상대로 실행됩니다.
new-net:~/test # ./ls_test
total 3395 -rwxr-xr-x 1 root root 3466177 Jul 13 16:41 ls_test -rw-r--r-- 1 root root 16 Jul 13 16:20 out_test.sh I'm here
따라서 pp
압축 스크립트는 포함 된 파일을 어디에서 찾을 수 있습니까? 그리고 포함 된 파일에 대한 호출을 원래 Perl 스크립트에서 어떻게 구성해야합니까?
from perldoc PAR; run par에서 실행할 스크립트의 이름입니다. 완료되면 종료됩니다. 추가 된 파일에 대한 호출이 패키지 된 스크립트를 종료한다는 것을 의미합니까? 원래 해결하려고했던 문제는 위젯 명령에서 다양한 외부 파일을 호출하는 POE/TK 스크립트입니다. – jpolache