LINUX.ORG.RU

Новый перевод по PERL


0

0

Переведена статья "Изменение поведения хэша с использованием функции tie", Дэйв Гросс, перевод Alex Ten.

"Тот факт, что хэши имеют столько широкое распространение, говорит о том, что Ларри (Larry Wall) и другие разработчики языка Perl не ошибались, когда разрабатывали эту структуру данных – хэши просты в использовании, интуитивно понятны и эффективны. Но сталкивались ли вы с ситуацией, когда бы вам хотелось изменить стиль и поведение работы с хэшем? Возможно, вы бы хотели, чтобы все хэши в данном модуле имели только строго зафиксированный набор ключей. Сталкиваясь с таким требованием, чрезвычайно соблазнительно полностью уйти от использования хэшей, в пользу объектов. Но обратная сторона такого решения такова, что при этом вы теряете классический стиль использования хэшей, простой и очень удобный. Однако использование связанных (tied) переменных позволяет создавать объекты и использовать их как хэши."

>>> Читать



Проверено: maxcom

Взглянул статью, и код в примерах -- по сравнению с питоном это о-чень заморочно (сразу скажу, что с перлом я хнаком значительно хуже).

В питоное, если нужна структура данных с именоваными полями, но "легкая", легче чем объект, можно использовать tuple_struct -- получается новый тип данных, который занимаеь в памяти ровно столько же места, сколько tuple, и дополнительно кроме обращения к элементам структуры по номерам позволяет обращаться к ним по именам. См. http://www.sil-tec.gr/~tzot/python/TupleStruct.py

anonymous
()
Ответ на: комментарий от anonymous

реализация механизма tie позволяет создавать переменные со специфичным поведением. Очень специфичным. Частый пример - подсчет количества обращений к переменной.

>В питоное, если нужна структура данных с именоваными полями...
в perl это и есть - хэш.
tie же служит именно для создания особых _переменных_. Реально, бывает очень удобно.


только непонятно, зачем озаглавливать новость "новый перевод по PERL"???????????

anonymous
()
Ответ на: комментарий от anonymous

Да, действительно, зачем же новость так назвали :) Лучше бы просто название статьи упомянули.

--- Alex Ten

anonymous
()
Ответ на: комментарий от anonymous

Согласен.

Вот если бы переводов было МНОГО, можно было бы назвать "Новый перевод попёр" ;)

А по статье коммментариев нет - от перла и лиспа бог миловал. Но на первый взгляд черезчур заморочно

anonymous
()
Ответ на: комментарий от anonymous

если нет заранее предубеждений к перл, то этот язык вместе с cpan.org дает огромные возможности, то с чем можно ковыряться на С неделю, на перл за час сделать, и также быстрее модифицировать, по скорости работы скрипт сравним с С программой.

ELF ★★
()
Ответ на: комментарий от anonymous

знаем-знаем: на си в jed/emacs можно все что хошь сделать, за пару часов ;) (c) alphex_kaanoken

anonymous
()
Ответ на: комментарий от anonymous

Tie позволяет делать дивные вещи... например, триггер на изменение значения переменной, или на ее чтение, или просто переменная, которая сама обрабатывает свое значение (например, обрубает пробелы в хвосте строки, или, например, форматирует себя сама особым образом). Причем связывать можно не только хэши, но и скаляры, списки...

Zulu ★★☆☆
()
Ответ на: комментарий от anonymous

Начал читать Лари Уолла его КамэлБук по Перлу. Добрался до регулярных варажений. При чтении просто организирую и от доходчивости изложения, от постоянный приколов автора и мощи языка.

Респект всем Перловикам.

anonymous
()
Ответ на: комментарий от anonymous

Начал читать Лари Уолла его КамэлБук по Перлу. Добрался до регулярных варажений. При чтении просто организирую и от доходчивости изложения, от постоянный приколов автора и мощи языка.

Ага и я тоже надо же лингвисту ТАК НЕУДАЧНО написать книгу просто на диво Нет читать то ее конечно прелесть но вот что нибудь написать после этого чтения а в особенности Написать на ЗАКАЗ т е с заранее уговоренными условиями и требованиями Вы смогли ? Я нет Понадобилось еще до дюжины книжек и эта была в самом низу стопки :)

kryl
()
Ответ на: комментарий от kryl

>>Ага и я тоже надо же лингвисту ТАК НЕУДАЧНО написать книгу просто на диво Нет читать то ее конечно прелесть но вот что нибудь написать после этого чтения а в особенности Написать на ЗАКАЗ т е с заранее уговоренными условиями и требованиями Вы смогли ? Я нет Понадобилось еще до дюжины книжек и эта была в самом низу стопки :)

Я только учусь. Поэтому пока за деньги писать ничего не собираюсь. И потом, очевидно(мне очевидно) на Перле нужно писАть (какоето более менее продолжительное время), вырабатывая свой стиль, чтобы из множества ТимТоуди выбрать наиболее удобный для собственного восприятия.

А Крилу просьба: перечисли, если не сложно книжки из свой стопки

anonymous
()
Ответ на: комментарий от anonymous

Я тебе завтра опубликую список ссылкок с ISBN и точными названиями Т.к. я не дома то сделать точно мне это тяжеловато Ник читается КРЫЛЬ

kryl
()
Ответ на: комментарий от kryl

> Ага и я тоже надо же лингвисту ТАК НЕУДАЧНО написать книгу просто на диво Нет читать то ее конечно прелесть но вот что нибудь написать после этого чтения а в особенности Написать на ЗАКАЗ т е с заранее уговоренными условиями и требованиями Вы смогли ? Я нет Понадобилось еще до дюжины книжек и эта была в самом низу стопки :)


это называется ОПЫТ и ТАЛАНТ!!!
разве может книга по русскому языку научить кого-то писать так наши классики?

anonymous
()
Ответ на: комментарий от anonymous

я, конечно, не Кирилл, но советую прочитать Perl Cookbook

anonymous
()
Ответ на: комментарий от anonymous

Какой нахрен ОПЫТ и ТАЛАНТ что ты Дарагой? О чем ты ! Мне нужно было очень простое. Как сделать Класс на Перл. Сделать в нем полями 3 Хеша. и Объявить 10 экземпляров. Все это естественно модуль. Методы должны были не пускать в хешь определенные значения.

Попробуй выяснить как с помощью этой книжки можно это сделать открой почитай ... А ? Что? там ровно 17 страниц наполненых маловнятными рассуждениями ... (3-я редакция может остальные были лучше незнаю)

kryl
()
Ответ на: комментарий от kryl

> Как сделать Класс на Перл. В perl еть классы?

>Методы должны были не пускать в хешь определенные значения. и что, получилось?

а если $object->{_defended_var} = "forbidden_value";

именно в этой ситуации и нужно было tie использовать...

anonymous
()
Ответ на: комментарий от anonymous

Да насрать на оверхед, память и процы дешевле чем рабочее время программиста. Не нравится - пиши на ассемблере.

chucha ★★★☆
()
Ответ на: комментарий от chucha

А Матросов М Чаунин СамоучительПерл ISBN-5-8206-0070-3 ( супер книга жаль что такая тонкая ) Т Кристиансен Н Торгинтон Perl Библиотека Программиста ISBN-5-8046-0094-x (бесценный подарок к дню подписания технического задания) Реналд Шварц Изучаем Перл ISBN-966-552-127-6 (Я совсем еще ничего не заню И .. Ничего не хочу сделать) Алигатор Декарт Perl DBI ISBN 5-93286-01308 (Для работы с базами данных ) Скот Гулич Шишир Гундаварам CGI промирование ISBN 5-93286-016-2 (почти не пригодится Хотя врочем на безрыбье ...) Дж Фридл Регилярные Выражения ISBN 0-596-00289-0 В Росии я знаю только две книги эту и еще одну Другуя я достать не смог хотя и очень хотел Мартин Браун Perl Архив программ ISBN 5-7989-0204-8 ( "Сон Кактуса" ) Кевин Мельтцер Разработка CGI приложений на Perl ISBN 5-8459-0211-8 (Очень полезно ТОлько листинги "Таакииее Страанные хи хи ":) Поль Дюбуа MySQL ISBN 5-8459=0518-8 (Невидимая и слепая как правосудие рука рынка заставит Вас купить этот труд) Ларру Уолл программирование на Perl ISBN 5-93286-020-0 (не могу так до сих пор понять какая польза от этого труда)

ну вот вроде бы и Все

kryl
()
Ответ на: комментарий от kryl

И насколько я понял труды перечислены в порядке убывания их полезности????

anonymous
()
Ответ на: комментарий от anonymous

почти В порядке Форматирование что-то слетело (тут такое часто бывает)

kryl
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.