2012-04-04 1 views
-5

Можно создать дубликат:
how to import multiple custom modules in our own perl script?Как импортировать несколько пакетов в Perl-скрипт?

У меня есть несколько пакетов. Я хочу импортировать их все сразу. Прямо сейчас, я делаю как

use lib 'path to packages'; 

use package1; 

use package2; 

...... 

use packageN; 

Который работает нормально. но я хочу импортировать все пакеты только одной командой. Может ли кто-нибудь предложить мне самый простой способ сделать это?

+0

Я не хочу использовать инструкцию 'use' для каждого пакета. Скажите мне, какие хорошие способы сделать ???? –

+1

Какова мотивация этой цели? – DavidO

+0

На самом деле я тестирую парня. Я создаю некоторые подпрограммы, которые я буду использовать в своем почти каждом тестовом скрипте. Итак, я создал пакет для каждой подпрограммы, но теперь проблема импорта? –

ответ

3

Audrey Tang имеет относительно новый модуль на CPAN под названием «use», который будет делать именно то, что вы просите. Из его синопсис:

use use qw[ strict warnings methods invoker ];

Он имеет и другие функции, в том числе возможность указать параметры, такие как списки импорта, поэтому читать документы. Но минимально просто разместите свои собственные имена модулей вместо тех, которые перечислены в моем примере кода.

Обновление: Итак, чтобы это было ясно, как я могу: во-первых, установите модуль «use», с которым я связан в верхней части этого ответа. Во-вторых, изменить код размещен в вашем вопросе, так что это выглядит следующим образом:

use lib 'path to packages'; 
use use qw[ package1 package2 package3 package4 ..... ]; 
+0

Я получаю путаницу, что что писать в моем модуле и что писать в ny скрипте, который использует этот модуль ??? –

+0

@ user970553 См. Мое «обновление». – DavidO

+0

Можете ли вы подробно рассказать о любом примере? –

2

Ну, вы могли бы сделать модуль, который сделает это за вас. Например:

use v5.10; 

use strict; 
use warnings; 

use mro (); 
use feature(); 

sub import { 
    warnings->import(); 
    strict->import(); 
} 

1; 

Настоящий модуль не работает, но вы получаете суть. Если вам нужен рабочий пример этого, посмотрите на the source code for Modern::Perl.

Если вы делаете что-то подобное, вам нужно написать ОДНУЮ ЛИНИЮ!

Надеюсь, это поможет!

 Смежные вопросы

  • Нет связанных вопросов^_^