예기치 않게 교수형에 처하지 않는 Perl 스크립트의 문제를 해결하고 있습니다. 나는 펄을 모른다. 마침내 문제를 파일 경로 문자열로 추적했습니다. 이 코드는 작동 : 나는 밑줄을 포함하는 파일 이름을 변경하면왜 경로 이름에 밑줄 문자로 인해 Perl 스크립트가 멈 춥니 다?
$eng_morph = "~/datafile.en.db";
tie %eng_morph, "DB_File", $eng_morph, O_CREAT|O_RDWR, 0664|| die "Cannot open dbmfile $eng_morph";
, 두 번째 줄은 영원히 중단 :
$eng_morph = "~/datafile.en_us.db";
tie %eng_morph, "DB_File", $eng_morph, O_CREAT|O_RDWR, 0664|| die "Cannot open dbmfile $eng_morph";
구문에 문제가 있습니까? 밑줄을 허용 할 수있는 방법이 있습니까?
저는 우분투 14.04를 사용하고 있습니다.
리눅스 아수스 노트북 3.13.0-43 제네릭 # 72 - 우분투 SMP 월 12월 8일 세계 협정시 19시 35분 6초 2014 x86_64에의 x86_64에의 x86_64의 GNU/리눅스
: 다음은 uname 출력입니다 또한 배포판에 기본 Perl을 사용하고 있습니다. 그 버전 출력된다 :
이 41 등록 패치 ( x86_64에-리눅스 GNU 스레드 및 멀티 위해 만들어진 펄 5 버전 (18), 서브 2 (v5.18.2)이며, 참조 펄 -V 위한 자세한 내용)
코드와 관련이없는 버그가 있습니다.'||'은 (는)'또는'여야합니다. '||'는 우선 순위가 높기 때문에 넥타이가 실패 할 때 죽는 대신에 0664가 거짓 일 때 죽어 가고 있습니다 (절대로 없습니다) – ysth
@ysth - "관련이 없습니다". 어쩌면이 오류는 실제 문제를 가리는 것이며 "결코 그렇지 않다"죽어가는 부분이 이어 나갈 수 있습니다. Perl에 익숙하지 않고 수정 구문을 이해하지 못합니다. 시도 할 수 있도록 답변에 전체 수정을 넣으시겠습니까? – tahoar