Я написал приложение для среднего класса. Как только я скопировал его на наш сервер разработки, я заметил, что он не распознает и не знает какие-либо из его команд, если он там запущен. Я минимизировал код в следующем примере, который работает на моем локальном компьютере, но не на сервере. Какое облако будет причиной?Почему приложение MooseX :: App не знает каких-либо команд на другом компьютере
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
и называют это нравится:
perl my_app.pl yay
Ожидаемый результат:
yay
На сервере разработки мало приложение не принимает yay
как команда и не перечисляет какую-либо команду в справке. Результат выглядит следующим образом:
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
Программное обеспечение задействованного:
- локальная машина (рабочий)
- Perl v5.14.4
- MooseX :: App 1,30
- сервер разработки (не работает)
- Perl 5.10.0
- MooseX :: App 1,30
К сожалению, я не могу установить разные версии Perl на сервере разработки, но я сомневаюсь, что это связано с Perl себя. Обновление: На самом деле оказалось, что Perl 5.10.0 сломался MooseX::App
.
Знает ли программа команду yay
при ее выполнении? У вас есть какой-то намек, почему это не сработает?
Работает для меня в 5.10.1 с MooseX :: App 1.30. 5.10.0 был своего рода багги и довольно необычен, чтобы все еще использовать на этом этапе. – AKHolland
установите 5.10.0 на локальную машину и попробуйте (см. Perlbrew); вы можете обнаружить, что это не версия perl, а версия какого-либо другого модуля? – ysth
@AKHolland, вы правы: я установил Perl 5.20.1 с perlbrew, и он сработал. Если вы опубликуете ответ, я с радостью приму его. –