2014-10-23 3 views
2

Я написал приложение для среднего класса. Как только я скопировал его на наш сервер разработки, я заметил, что он не распознает и не знает какие-либо из его команд, если он там запущен. Я минимизировал код в следующем примере, который работает на моем локальном компьютере, но не на сервере. Какое облако будет причиной?Почему приложение 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 при ее выполнении? У вас есть какой-то намек, почему это не сработает?

+1

Работает для меня в 5.10.1 с MooseX :: App 1.30. 5.10.0 был своего рода багги и довольно необычен, чтобы все еще использовать на этом этапе. – AKHolland

+0

установите 5.10.0 на локальную машину и попробуйте (см. Perlbrew); вы можете обнаружить, что это не версия perl, а версия какого-либо другого модуля? – ysth

+0

@AKHolland, вы правы: я установил Perl 5.20.1 с perlbrew, и он сработал. Если вы опубликуете ответ, я с радостью приму его. –

ответ

0

5.10.0 был довольно ошибкой версии perl. Попробуйте другую версию, используя perlbrew.