2
나는 중형 CLI 응용 프로그램을 작성했습니다. 일단 개발 서버에 복사 한 후에는 거기에서 실행될 경우 명령을 인식하거나 인식하지 못합니다. 내 로컬 컴퓨터에서 작동하지만 서버에서는 작동하지 않는 다음 예제로 코드를 최소화했습니다. 그 이유는 무엇입니까?MooseX :: App 앱이 다른 컴퓨터에서 어떤 명령을 알지 못하는 이유
perl my_app.pl yay
예상 출력 : 개발 서버에서
yay
작은 응용 프로그램이 명령으로 yay
을지지 않습니다
package MyApp;
use MooseX::App;
1;
package MyApp::Yay;
use MooseX::App::Command;
sub run {print "yay\n"}
1;
package main;
MyApp->new_with_command->run;
1;
파일
my_app.pl
에서 해당 저장
하고 싶은 전화 도움말에 명령을 나열하지 않습니다.
Unknown command 'yay'
usage:
my_app.pl <command> [long options...]
my_app.pl help
my_app.pl <command> --help
global options:
--help -h --usage -? Prints this usage information. [Flag]
available commands:
help Prints this usage information
관련된 소프트웨어는 다음과 같습니다 :
- 로컬 컴퓨터
- 펄 v5.14.4 (작업)
- MooseX :: 앱 1.30
출력은 다음과 같습니다
- 개발 서버 (해당 서버에서 작동하지 않음)
- 펄 5.10.0
- MooseX :
앱 1.30
MooseX::App
을 깨뜨렸다.
실행시 프로그램이 yay
명령을 알고 있습니까? 왜 효과가 없을지 전혀 모르십니까?
MooseX :: App 1.30을 사용하여 5.10.1 버전에서 작동합니다. 5.10.0은 일종의 버그 였고 여전히이 시점에서 사용하는 것은 매우 이례적입니다. – AKHolland
로컬 컴퓨터에 5.10.0을 설치하고 시도하십시오 (perlbrew 참조). 당신은 펄 버전이 아니라 다른 모듈의 버전이라는 것을 알 수있을 것입니다. – ysth
@AKHolland, 맞아 : perlbrew로 Perl 5.20.1을 설치했는데 성공했다. 답변을 게시하면 기꺼이 받아 들일 것입니다. –