# библиотека подпрограмм 'music_lib.pl'
sub albums_by_artist { # найти альбомы указанного артиста
my ($artist) = @_; # аргумент поиска: артист
my @albums = (); # возвращаемый список
seek DATA, 0, 0; # ищем с начала файла
while () { # просматриваем альбомы в файле
push @albums, $1 if /$artist;(.+?);/; # и выбираем
} # все подходящие
return @albums; # результат: список альбомов
}
# ... другие подпрограммы библиотеки...
__DATA__ # конец библиотечного файла
Рассмотрим, как происходит обращение к библиотечным подпрограммам во время выполнения программы.
Чтобы воспользоваться подпрограммой из библиотечного файла, нужно в вызывающей программе загрузить библиотеку командой
После того как внешний файл был успешно загружен, можно вызывать подпрограммы из загруженного библиотечного файла, как если бы они были описаны в текущей программе. В нашем случае это будет выглядеть так:
do 'lib/music_lib.pl'; # загрузить библиотеку
# вызвать библиотечную подпрограмму
my @albums = albums_by_artist('Elton John');
print "$_\n" foreach(@albums); # напечатать найденный список
Обратите внимание, что в нашем примере явно указан путь к подкаталогу с библиотекой, что предполагает запуск программы из определенного каталога. Гораздо лучше сделать так, чтобы расположение библиотек не зависело от местонахождения вызывающей программы. Для этого в Perl имеется специальный массив
perl -I/Shock/Mike/lib program.pl
Тогда в программе можно указывать путь к библиотекам относительно одного из перечисленных в массиве
do 'music_lib.pl'; # искать библиотеку в списке @INC
Другой способ добавить в массив
use lib('/Shock/Mike/lib'); # добавить путь к списку @INC
Команда загрузки внешних программ
# ... другие подпрограммы библиотеки...
1; # вернуть истинное значение для require
__DATA__ # конец библиотечного файла
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии