Đây là nỗ lực của tôi để cắt giảm thông qua các vấn đề không liên quan huy động "Why don’t my system calls work in the Perl program I wrap with pp?" Tôi đã tạo ra một kịch bản Perl đơn giản trên một hệ thống Linux:Trang (PAR) giải nén tập tin (-a) ở đâu?
new-net:~/scripts # cat ls_test.pl
@ls_out = `ls -l`;
map { print "$_\n" } @ls_out;
$out = `sh out_test.sh`;
print "$out\n";
kịch bản này đòi hỏi một file shell đơn giản:
new-net:~/scripts # cat out_test.sh
echo "I'm here"
tôi đã sử dụng pp để đóng gói tập lệnh Perl cùng với tập lệnh shell vào ls_test:
new-net:~/test # unzip -l ls_test Archive: ls_test Length Date Time Name -------- ---- ---- ---- 0 07-13-09 16:41 script/ 436 07-13-09 16:41 MANIFEST 214 07-13-09 16:41 META.yml 93 07-13-09 16:41 script/ls_test.pl 538 07-13-09 16:41 script/main.pl 16 07-13-09 16:20 out_test.sh -------- ------- 1297 6 files
Nếu tôi chạy tệp được đóng gói theo cách khác mpty thư mục, các tập lệnh shell không được tìm thấy:
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
Nếu tôi sao chép các tập lệnh shell vào thư mục, kịch bản đóng gói chạy như mong đợi:
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
Vì vậy, nơi nào một kịch bản đóng gói pp
mong đợi để tìm một tệp được bao gồm? Và làm thế nào một cuộc gọi đến tập tin được bao gồm được cấu hình trong kịch bản Perl gốc?
từ cải cách hành chính perldoc; run Tên của tập lệnh chạy theo mệnh giá. Thoát khi hoàn tất. Điều này có nghĩa là mọi cuộc gọi đến tệp được thêm sẽ thoát khỏi tập lệnh được đóng gói? Vấn đề ban đầu tôi đang cố gắng giải quyết là một kịch bản POE/TK gọi các tệp bên ngoài khác nhau từ các lệnh widget. – jpolache