![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
Alex |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 162 |
Tar.pm - модуль для работы с tar архивами. Работает под Linux, Solaris, Windows. Насчет соляриса не знаю, а под Win и Linux он действительно работает
![]() Модуль весьма небольшой, не требует предварительной инсталляции и его можно подключать используя require. Теперь зархивируем чего-нибудь! Для этого напишем такой скриптик: Архивация:
В общем то и все. В результате выполнения сценария вы получите файлик files.tar, в котором будут находиться файлы: file1, file2, file3 Метод add_files(@file_names) - должен получить получить список файлов, и их он помещает в архив, который хранится в памяти. Ну а метод write('file.tar') записывает архив, содержащийся в памяти, непосредственно в файл file.tar, т.е. наш архивчик теперь хранится не только в памяти, но и на диске, чего, собственно, мы и хотели. Думаю, стоит про метод write(), сказать подробнее. Его синтаксис: write('file.tar',$compressed) - первый параметр, это имя файла, в который мы и запишем наш архив. Возможно некоторых это и удивит, но этот параметр необязателен, можно его и опустить, в тако случае, наш архив возвращается как строковая переменная, которую можно будет применить по своему усмотрению. Второй параметр $compressed - тоже необязательный. Если он будет 'true', то будет осуществлено сжатие архива. Тут стоит быть осторожным, т.к. для включения этой опции необходимо чтоб у вас был инсталлирован модуль Zlib.pm (пакет Compress::Zlib ), если его не будет, а у вас будет включена компрессия, то Tar.pm будет ругаться. Теперь займемся разархивацией: Разархивация:
В результате выполнения сценария мы получим то, что и хотели получить: помимо files.tar у нас будут иметься и file1, file2 и т.д., т.е. содержимое архива. read('files.tar',$compressed) - первый параметр имя файла, второй опция копрессии (необязательный параметр), о компрессии (сжатии) я говорил выше. В результате выполнения этого метода наш архив files.tar считывается в память. list_files() - этот метод возвращает нам список имен файлов, содержащихся в архиве, который, в свою очередь, содержится в памяти. extract(@files) - сей метод получает список имен файлов и занимается их разархивацией. Если необходимо, то он создает субдиректории (например, если имя файла было 'myfiles/file1', то будет создана директория myfiles). Заметьте, что из архива необязательно извлекать все содержащиеся в нем файлы - можно и какой-нибудь определенный, например только file1. CPAN: Archiving Compression Conversion - А тут вы найдете все необходимое: модуль Tar.pm (Archive::Tar) о котором я разглагольствовал, а также множество других модулей, которые предназначены для работы с архивами (в том числе и для архива в ZIP формате) Информация подготовлена при помощи сайта: www.webscript.ru -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |