2014-12-21 2 views
0

Я пишу скрипт Perl, который использует модуль Inline :: Java. Включая внешние библиотеки по жестко прописывать параметр конфигурации CLASSPATH какPerl Inline :: Java. Как получить переменную среды Classpath во время компиляции?

use Inline (
     Java  => 'DATA', 
     CLASSPATH => '/way/to/classes:/way/to/Jar.jar:.', 
); 

работ. Но с помощью переменной окружения CLASSPATH, написав

use Inline (
    Java  => 'DATA', 
    CLASSPATH => $ENV{CLASSPATH}, 
); 

работу это не распространяется (возможно, потому, что% ENV установлен во время выполнения ??). Обертывание все это в BEGIN, блок т.е. пытается написать «использование» явно

BEGIN {  
     require Inline(
      Java  => 'DATA', 
      CLASSPATH => $ENV{CLASSPATH}, 
     ); 
} 

не работал, а (как приведенный выше код приводит к ошибке компиляции). Кто-нибудь знает, как я могу использовать переменную среды CLASSPATH в Inline :: Java?

ответ

1

Попробуйте это:

$inline1 = "use Inline ( Java  => 'DATA', CLASSPATH => $ENV{CLASSPATH},)"; 
print $inline1; 
eval $inline1; 
+1

Спасибо за вашу помощь. Я обнаружил ошибку. Я должен признать, что это немного смущает, но переменная среды CLASSPATH была установлена ​​неправильно. Это означает, что второй пример с $ ENV {CLASSPATH} работает отлично. – koet