ebook img

Perl: библиотека программиста PDF

733 Pages·2001·11.3 MB·Russian
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Perl: библиотека программиста

Решения и примеры для программистов Т. Кристиансен Н. Торкингтон Т. Кристиансен Н. Торкингтон Perl БИБЛИОТЕКА ПРОГРАММИСТА 2001 Том Кристиансен, Натан Торкингтон Perl: библиотека программиста Перевел с английского Е. Матвеев Главный редактор В. Усманов Заведующий редакцией Е. Строганова Ведущий редактор А. Пасечник Научный редактор С. Реентенко Корректор В. Листова Верстка Р. Гришанов ББК 32.973.2(cid:14)018 УДК 681.3.06 Кристиансен Т., Торкингтон Н. К82 Perl: библиотека программиста — СПб: Питер, 2001. — 736 с.: ил. ISBN 5(cid:14)8046(cid:14)0094(cid:14)Х Книга содержит обширную коллекцию путей решения большинства проблем, возникающих при работе с языком Perl. Рассматривается широкий круг вопросов: от основ техники программирования до профессиональных тонкостей, от манипуляций со строками, числами и массивами до создания баз данных SQL, от сценариев CGI и Интернет’приложений до разработки серьезных систем клиент’сервер. Наиболее удачные и красивые решения, представляющие квинтэссенцию опыта десятков профессионалов, окажутся в вашем распоряжении. Original English language Edition Copyright© 1998 O'Reilly & Associates, Inc. © Перевод на русский язык, Е. Матвеев, 2000 © Серия, оформление, Издательский дом "Питер", 2001 Права на издание получены по соглашению с O'Reilly & Associates, Inc. Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав. Информация, содержащаяся в данной книге, получена из источников, рассматриваемых издательством как надежные. Тем не менее, имея в виду в озможные человеческие или технические ошибки, издательство не может гарантировать абсолютную точность и полноту приводимых сведений и не несет ответственности за возможные ошибки, связанные с использованием книги. ISBN 5(cid:14)8046(cid:14)0094(cid:14)Х ISBN 1(cid:14)56592(cid:14)243(cid:14)3 (англ.) ЗАО "Питер Бук". 196105, Санкт’Петербург, ул. Благодатная, 67. Лицензия ИД № 01940 от 05.06.00. Подписано в печать 20.09.00. Формат 70X100 1/16. Усл. п. л. 46. Доп. тираж 5000 экз. Заказ № 1800. Отпечатано с фотоформ в ГПП "Печатный двор" Министерства РФ по делам печати, телерадиовещания и средств массовых коммуникаций. 197110, Санкт’Петербург, Чкаловский пр., 15. Краткое содержание Глава 1 • Строки 26 Глава 2 • Числа 67 Глава 3 • Дата и время 94 Глава 4 • Массивы 114 Глава 5 • Хэши 151 Глава б • Поиск по шаблону 179 Глава 7 • Доступ к файлам 239 Глава 8 • Содержимое файлов 289 Глава 9 • Каталоги 323 Глава 10 • Подпрограммы 348 Глава 11 • Ссылки и записи 376 Глава 12 • Пакеты, библиотеки и модули 405 Глава 13 • Классы, объекты и связи 449 Глава 14 • Базы данных 496 Глава 15 • Пользовательские интерфейсы 521 Глава 16 • Управление процессами и межпроцессные взаимодействия 556 Глава 17 • Сокеты 604 Глава 18 • Протоколы Интернета 643 Глава 19 • Программирование CGI ббб Глава 20 • Автоматизация в Web 703 Алфавитный указатель 729 Содержание Предисловие 15 Введение 17 Благодарности 23 Глава 1 Строки 26 1.1. Работа с подстроками ... 28 1.2. Выбор значения по умолчанию 31 1.3. Перестановка значений без использования временных переменных ...33 1.4. Преобразование между символами и ASCII’кодами 34 1.5. Посимвольная обработка строк ...36 1.6. Обратная перестановка слов или символов 38 1.7. Расширение и сжатие символов табуляции 40 1.8. Расширение переменных во входных данных 41 1.9. Преобразование регистра 43 1.10. Интерполяция функции и выражений в строках 46 1.11. Отступы во встроенных документах 47 1.12. Переформатирование абзацев .51 1.13. Служебные преобразования символов 53 1.14. Удаление пропусков в обоих концах строки 54 1.15. Анализ данных, разделенных запятыми 55 1.16. Сравнение слов с похожим звучанием 57 1.17. Программа: fixstyle 58 1.18. Глава 2 Числа 67 2.1. Проверка строк на соответствие числам 68 2.2. Сравнение чисел с плавающей запятой 70 2.3. Округление чисел с плавающей запятой 71 2.4. Преобразования между двоичной и десятичной системами счисления.. 72 2.5. Действия с последовательностями целых чисел 74 2.6. Работа с числами в римской записи 75 2.7. Генератор случайных чисел 76 2.8. Раскрутка генератора случайных чисел 77 2.9. Повышение фактора случайности 78 2.10. Генерация случайных чисел с неравномерным распределением 78 2.11. Выполнение тригонометрических вычислений в градусах..... 81 2.12. Тригонометрические функции 82 2.13. Вычисление логарифмов . 83 2.14. Умножение матриц . 84 2.15. Операции с комплексными числами 86 2.16. Преобразования восьмеричных и шестнадцатеричных чисел 87 Содержание 7 2.17. Вывод запятых в числах 88 2.18. Правильный вывод во множественном числе 89 2.19. Программа: разложение на простые множители 91 Глава 3 Дата и время 94 3.1. Определение текущей даты 96 3.2. Преобразование полного времени в секунды с начала эпохи 98 3.3. Преобразование секунд с начала эпохи в полное время 99 3.4. Операции сложения и вычитания для дат 100 3.5. Вычисление разности между датами 101 3.6. Определение номера недели, или дня недели/месяца/года 102 3.7. Анализ даты и времени в строках 104 3.8. Вывод даты 105 3.9. Таймеры высокого разрешения. 107 3.10. Короткие задержки 109 3.11. Программа: hopdelta 110 Глава 4 Массивы 114 4.1. Определение списка в программе 115 4.2. Вывод списков с запятыми 117 4.3. Изменение размера массива 119 4.4. Выполнение операции с.каждым элементом списка 121 4.5. Перебор массива по ссылке 124 4.6. Выборка уникальных элементов из списка 125 4.7. Поиск элементов одного массива, отсутствующих в другом массиве... 127 4.8. Вычисление объединения, пересечения и разности уникальных списков 129 4.9. Присоединение массива 131 4.10. Обращение массива 132 4.11. Обработка нескольких элементов массива 133 4.12. Поиск первого элемента списка, удовлетворяющего некоторому критерию . 1 3 4 4.13. Поиск всех элементов массива, удовлетворяющих определенному критерию 136 4.14. Числовая сортировка массива 137 4.15. Сортировка списка по вычисляемому полю 139 4.16. Реализация циклических списков 143 4.17. Случайная перестановка элементов массива 144 4.18. Программа: words 145 4.19. Программа: permute 147 Глава 5 Хэши 151 5.1. Занесение элемента в хэш 153 5.2. Проверка наличия ключа в хэше 154 8 Содержание 5.3. Удаление из хэша 156 5.4. Перебор хэша 157 5.5. Вывод содержимого хэша 160 5.6. Перебор элементов хэша в порядке вставки 161 5.7. Хэши с несколькими ассоциированными значениями 162 5.8. Инвертирование хэша . 164 5.9. Сортировка хэша ... 165 5.10. Объединение хэшей 166 5.11. Поиск общих или различающихся ключей в двух кэшах 168 5.12. Хэширование ссылок 169 5.13. Предварительное выделение памяти для хэша 170 5.14. Поиск самых распространенных значений 171 5.15. Представление отношений между данными 172 5.16. Программа: Глава 6 Поиск по шаблону 179 6.1. Копирование с подстановкой 185 6.2. Идентификация алфавитных символов 186 6.3. Поиск слов 187 6.4. Комментирование регулярных выражений 188 6.5. Поиск N’ro совпадения 190 6.6. Межстрочный поиск 193 6.7. Чтение записей с разделением по шаблону 195 6.8. Извлечение строк из определенного интервала 197 6.9. Работа с универсальными символами командных интерпретаторов 200 6.10. Ускорение интерполированного поиска 201 6.11. Проверка правильности шаблона 205 6.12. Локальный контекст в регулярных выражениях 207 6.13. Неформальный поиск 209 6.14. Поиск от последнего совпадения 210 6.15. Максимальный и минимальный поиск 211 6.16. Поиск повторяющихся слов 213 6.17. Логические AND, OR и NOT в одном шаблоне 216 6.18. Поиск многобайтовых символов 220 6.19. Проверка адресов электронной почты 224 6.20. Поиск сокращений 226 6.21. Программа: urlify 228 6.22. Программа: ...229 6.23. Копилка регулярных выражений 236 Глава 7 Доступ к файлам 239 7.1. Открытие файла 243 7.2. Открытие файлов с нестандартными именами 247 7.3. Тильды в именах файлов 248 7.4. Имена файлов в сообщениях об ошибках ... 249 Содержание 9 7.5. Создание временных файлов 250 7.6. Хранение данных в тексте программы 252 7.7. Создание фильтра 253 7.8. Непосредственная модификация файла с применением временной копии 258 7.9. Непосредственная модификация файла с помощью параметра ’i.... 259 7.10. Непосредственная модификация файла без применения временного файла 261 7.11. Блокировка файла 262 7.12. Очистка буфера 265 7.13. Асинхронное чтениеи з нескольких манипуляторов 267 7.14. Асинхронный ввод/вывод :. 269 7.15. Определение количества читаемых байтов 270 7.16. Хранение файловых манипуляторов в переменных 272 7.17. Кэширование открытых файловых манипуляторов 275 7.18. Одновременный вывод через несколько файловых манипуляторов 276 7.19. Открытие и закрытие числовых файловых дескрипторов 277 7.20. Копирование файловых манипуляторов 278 7.21. Программа: netlock 280 7.22. Программа: Глава 8 Содержимое файлов 289 8.1. Чтение строк с символами продолжения 293 8.2. Подсчет строк (абзацев, записей) в файле 294 8.3. Обработка каждого слова в файле 295 8.4. Чтение файла по строкам или абзацам в обратном направлении 297 8.5. Чтение из дополняемого файла 298 8.6. Выбор случайной строки из файла 300 8.7. Случайная перестановка строк 301 8.8. Чтение строки с конкретным номербм 301 8.9. Обработка текстовых полей переменной длины 305 8.10. Удаление последней строки файла. 306 8.11. Обработка двоичных файлов 307 8.12. Ввод/вывод с произвольным доступом 309 8.13. Обновление файла с произвольным доступом 309 8.14. Чтение строки из двоичного файла 311 8.15. Чтение записей фиксированной длины 312 8.16. Чтение конфигурационных файлов 314 8.17. Проверка достоверности файла 316 8.18. Программа: tailwtmp 319 8.19. Программа: tctee 319 8.20. Программа: laston 321 Глава 9 Каталоги 323 9.1. Получение и установка атрибутов времени 328 9.2. Удаление файла 329 9.3. Копирование или перемещение файла 330 10 Содержание 9.4. Распознавание двух'имен одного файла 332 9.5. Обработка всех файлов каталога 333 9.6. Получение списка файлов по шаблону 335 9.7. Рекурсивная обработка всех файлов каталога 336 9.8. Удаление каталога вместе с содержимым 339 9.9. Переименование файлов 340 9.10. Деление имени файла на компоненты 342 9.11. Программа: symirror.. 343 9.12. Программа: 1st 344 Глава 10 Подпрограммы 348 10.1. Доступ к аргументам подпрограммы 349 10.2. Создание закрытых переменных в функциях 351 10.3. Создание устойчивых закрытых переменных 353 10.4. Определение имени текущей функции 354 10.5. Передача массивов и хэшей по ссылке 356 10.6. Определение контекста вызова 357 10.7. Передача именованных параметров 358 10.8. Пропуск некоторых возвращаемых значений 359 10.9. Возврат нескольких массивов или хэшей 360 10.10. Возвращение признака неудачного вызова 361 10.11. Прототипы функций 362 10.12. Обработка исключений 364 10.13. Сохранение глобальных значений 366 10.14. Переопределение функции 369 10.15. Перехват вызовов неопределенных функций с помощью AUTOLOAD 371 10.16. Вложенные подпрограммы... 372 10.17. Сортировка почты 373 Глава 11 Ссылки и записи 376 11.1. Ссылки на массивы 381 11.2. Создание хэшей массивов 383 11.3. Получение ссылок на хэши 384 11.4. Получение ссылок на функции 385 11.5. Получение ссылок на скаляры 388 11.6. Создание массивов ссылок на скаляры 389 11.7. Применение замыканий вместо объектов 390 11.8. Создание ссылок на методы. 392 11.9. Конструирование записей 393 11.10. Чтение и сохранение записей в текстовых файлах 395 11.11. Вывод структур данных 396 11.12. Копирование структуры данных 398 11.13. Сохранение структур данных на диске 399 11.14. Устойчивые структуры данных 401 11.15. Программа: бинарные деревья 402 Содержание 11 Глава 12 Пакеты, библиотеки и модули 405 12.1. Определение интерфейса модуля 410 12.2. Обработка ошибок 12.3. Отложенное использование модуля 414 12.4. Ограничение доступа к переменным модуля 416 12.5. Определение пакета вызывающей стороны 419 12.6. Автоматизированное выполнение завершающего кода 421 12.7. Ведение собственного каталога модулей 422 12.8. Подготовка модуля к распространению 425 12.9. Ускорение загрузки модуля с помощью SelfLoader 427 12.10. Ускорение загрузки модуля с помощью AutoLoader 428 12.11. Переопределение встроенных функций. 429 12.12. Вывод сообщений об ошибках и предупреждений по аналогии со встроенными функциями 430 12.13. Косвенные ссылки на пакеты 432 12.14. Применение h2ph для преобразования заголовочных файлов С 433 12.15. Применение h2xs для создания модулей с кодом С 436 12.16. Документирование модуля в формате pod 439 12.17. Построение и установка модуля CPAN 441 12.18. Пример: шаблон модуля 443 12.19. Программа: поиск версий и описаний установленных модулей 445 Глава 13 Классы, объекты и связи 449 13.1. Конструирование объекта 456 13.2. Уничтожение объекта 457 13.3. Работа с данными экземпляра 459 13.4. Упра вление данными класса 462 13.5. Использование класса как структуры 464 13.6. Клонирование объектов 467 13.7. Косвенный вызов м е т о д о в . 469 13.8. Определение принадлежности субкласса 470 13.9. Создание класса с поддержкой наследования 472 13.10. Вызов переопределенных методов 474 13.11. Генерация методов доступа с помощью AUTOLOAD 475 13.12. Решение проблемы наследования данных 477 13.13. Использование циклических структур данных 479 13.14. Перегрузка операторов 482 13.15. Создание "магических" переменных функцией tie 488 Глава 14 Базы данных 496 14.1. Создание и использование DBM’файла 498 14.2. Очистка DBM’файла 501 14.3. Преобразование DBM’файлов 502 14.4. Объединение DBM’файлов 503 14.5. Блокировка DBM’файлов 504

Description:
The Perl Cookbook is a comprehensive collection of problems, solutions, and practical examples for anyone programming in Perl. Topics range from beginner questions to techniques that even the most experienced of Perl programmers will learn from. More than just a collection of tips and tricks, the Pe
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.