그래서, 내 코드 (Perl 스크립트와 펄 모듈)이 같은 나무에 앉아 'LIB 사용'펄 동적 경로
trunk/
util/
process/
scripts/
'의 util'디렉토리, 음, 유틸리티, 그 일을 가지고 '프로세스 /'디렉토리에 있어야합니다. 그들은 다음과 같이 접근합니다 :
"util /"과 같은 수준에있는 한 그 구조는 시작하는 곳을 신경 쓰지 않습니다.
는하지만 '스크립트 /'너무 혼잡 얻고 있었다 결정, 그래서 나는이 작동하지 않는 것을 볼 이제
scripts/scripts1
scripts/scripts2
를 만들었습니다. 'trunk/scripts/scripts1/call_script.pl'스크립트를 실행하고 '/trunk/process/process_script.pl'을 호출하면 'process_script.pl'이 UtilityModule()에서 루틴을 가져 오는 데 실패합니다. FindBin이 반환하는 경로는 최상위 호출 스크립트의 경로입니다.
첫 번째 열 개 등이 관련된 모든 것을 해결하기 내가 생각 방법 :
use lib $path_that_came_from_elsewhere;
을하지만 펄이 그 FindBin 트릭을 통해 제외 할 좋아하지 않는 무언가가 될 것으로 보인다.
BEGIN {} 블록과 관련된 몇 가지 사항을 시도했지만 실제로 내가하는 일을 잘 모르고 리팩토링을 끝내기 쉽습니다. 그러나 누군가가 이런 유형의 문제에 대한 영리한 통찰력을 가지고 있다면, 이것은 몇 가지 포인트를 얻을 수있는 좋은 기회가 될 것입니다! 당신의 가능한 트렁크의 위치는 어디서든 자신의 경로에 "스크립트"(예 아니오 "는/usr/스크립트/재료/트렁크/스크립트 /"경우가 존재 포함하지 않는 경우
나는 이것을 사랑한다. –