LINUX.ORG.RU

Perl мертв. Да здравствует Perl!


0

0

JT Смит, президент Plain Black, создатель WebGUI, и однин из незамеченных, но успешно использующих Perl в бизнесе, недавно послал мне это эссе. Он дал мне(O'Reilly) разрешение издать это полностью здесь.

Каждый день, я задумываюсь о том, почему я пишу на Perl а не на PHP, Java, C#, Ruby, Python, или [подставте ваш любимый язык сюда]? Люди говорят что, "Perl не используется больше" или, "Рубин - рулез..."

Есть миллионы программистов Perl во всем мире. Perl 5 активно поддерживается, и Perl 6 находится в развитии. Больше чем 3000 Модулей Perl были выпущены в 2006г, и вдвое больше должны быть выпущены в этом году. Действительность состоит в том, что Perl является совсем не мертвым.

>>> Взято с сайта =>



Проверено: Shaman007 ()

Ответ на: Re: Perl мертв. Долгой жизни Perl... от anonizmus

Re: Perl мертв. Долгой жизни Perl...

> Ок, есть задача например: зайти на http://namescout.com/, авторизироваться, пройтись по списку доменов

Я эту задачу отдам в QA-отдел. У них там есть какая-то красивая гуишная IDE для написания автоматизированных тестов под веб, пусть попыхтят.

Если непременно надо делать самому, то twill. Если же, не дай б-г, сайт написан криво и твилл развалится - то чистый python + BeautifulSoup.

yk4ever ()

Re: Perl └}└u└┌└└└r. └D└p └x└t└┌└p└r└┐└└└r└┘└u└└ Perl!

>локаль в утф переключи, баклан %)

Отлично: а теперь приедставь себе, что ты - японец и русского алфавита не знаешь.

Сложно представить? Ну так посмотри пример здесь: http://www.linux.org.ru/jump-message.jsp?msgid=2068951&cid=2071258

stellar ()
Ответ на: Re: Perl мертв? Да здравствует Perl! от anonizmus

Re: Perl мертв? Да здравствует Perl!

>>> Почему то не приводят конкретную задачу под что выбирается язык, и складывается ощущение что тут в основном тусят какие то недобыдломенеджеры а не кодеры даже, ибо крайне популярен лозунг "мне некогда учить язык, мне надо пЕсать сейчас", видимо проектировать им тоже некогда, прежде чем писать на чем либо, результат мы все видим в виде современного ит - куда ни плюнь, кругом полно некомпетентного говна которое порождает хаос и анархию, апокалипсис грядет, конец близок.

апокалипсис, гришь? неужели уже спирт не помогает? :)))

anonymous ()

Re: Perl └}└u└┌└└└r. └D└p └x└t└┌└p└r└┐└└└r└┘└u└└ Perl!

>Так вот, дорогие любители уникода в порграммном коге: убейте себя об стену, да.

А кто его внутри юзает то ? все на eng пишут.

anonizmus ()

Re: Perl └}└u└┌└└└r. └D└p └x└t└┌└p└r└┐└└└r└┘└u└└ Perl!

>А кто его внутри юзает то ? все на eng пишут.

Ну как жеж... только что кое-кто предлагал математикам писать все в utf8 :)

stellar ()

Re: Perl └}└u└┌└└└r. └D└p └x└t└┌└p└r└┐└└└r└┘└u└└ Perl!

>Отлично: а теперь приедставь себе, что ты - японец и русского алфавита не знаешь.

Но речь же шла о возможности, а не о том что я могу не знать русского или японского, или ? Ну а если кто пишет на японском или русском названия функций - то он сам себе злой буратино (или ему не нужно что бы это кто-то читал, хотя на английском все равно привычнее как то)

anonizmus ()
Ответ на: Re: Perl мертв. Да здравствует Perl! от roller

Re: Perl мертв. Да здравствует Perl!

> По поводу высказывания 90% задач на 90% в работе с текстом - самый простой пример для вас - веб приложения или ЛОР.
> Необходимо принять ТЕКСТОВЫЙ запрос

...который принять лучше всего может только perl...

> состоящий из ТЕКСТОВЫХ полей.

Ой, а раз есть поля, то парсить ничего не надо? А жаль, ведь так хотелось ;-)

> Далее обработать эти ТЕКСТОВЫЕ значения,

Ага, прям в поте лица шлифовать напильником.

> сделать ТЕКСТОВЫЙ запрос к базе,

... и никто не сравнится в этом искусстве с перлом!

> получить ТЕКСТОВЫЕ данные

... и никто не сравнится в этом искусстве с перлом!

> и составить ТЕКСТОВЫЙ хтмл ответ.

Ай, а вот это лишнее! Зачем останавливаться? Давайте ещё чо-нить обработаем, пропарсим, примем, сделаем запрос?

annonymous ★★ ()
Ответ на: Re: Perl мертв. Да здравствует Perl! от mshock

Re: Perl мертв. Да здравствует Perl!

> Да будет Вам известно, что на Perl написано очень много весьма больших систем, например: SpamAssassin, Nagios, MRTG, OpenWebMail, 4Site, Bugzilla, TWiki... Это первое, что вспомнилось без Googlа!

Google всё-таки желательно задействовать, чтобы узнать о том, что почти все указанные системы имеют уже имеют более качественные аналоги, написанные на других языках.

annonymous ★★ ()
Ответ на: Re: Perl мертв. Долгой жизни Perl... от stellar

Re: Perl мертв. Долгой жизни Perl...

> Поэтому что Питон, что Перл, что С - разницы особо никакой (при прямых руках).

ЧТД, никаких хваленых текстовых преимуществ у перла нет. А все остальное он и так делает хуже, чем другие.

Кстати, а че половина постов пропала?

anonymous ()
Ответ на: Re: Perl мертв. Долгой жизни Perl... от anonymous

Re: Perl мертв. Долгой жизни Perl...

>Google всё-таки желательно задействовать, чтобы узнать о том, что почти все указанные системы имеют уже имеют более качественные аналоги, написанные на других языках.

livejournal захаять забыли %)

>ЧТД, никаких хваленых текстовых преимуществ у перла нет. А все остальное он и так делает хуже, чем другие.

Узнается подчерк месье который привык рисовать в дельфи формочки %)) Такого уже ничем не проймешь %)

anonizmus ()
Ответ на: Re: Perl мертв. Долгой жизни Perl... от yk4ever

Re: Perl мертв. Долгой жизни Perl...

> > Спроектируй, реализуй, стабилизируй, популяризируй язык который перекрывает перл в его нише

> sed? awk?

Кстати, да... Тут вот активно пиарят perl как лучший инструмент для обработки текста, а ведь он и рядом не стоял по удобству с awk!

Awk - это единственный True инструмент для обработки текстов.
Perl - это язык-клей, изначально задуманный для сшивания shell-скриптов, и этим всё сказано.

annonymous ★★ ()
Ответ на: Re: Perl мертв. Долгой жизни Perl... от anonizmus

Re: Perl мертв. Долгой жизни Perl...

> Ок, есть задача например: зайти на http://namescout.com/, авторизироваться, пройтись по списку доменов, ну и скажем по некоторым признакам что-нибудь с ними сделать в админке этой, например продлить, или выслать емейл администратору, или флаг какой нить поставить, т.е. типичная задача автоматизации веб рутины, на чем ты такое будешь писать ?

Php для таких дел идеален. Именно для автоматизации веб -рутины.

annonymous ★★ ()
Ответ на: Re: Perl мертв. Долгой жизни Perl... от anonymous

Re: Perl мертв. Долгой жизни Perl...

> Кстати, а че половина постов пропала?

Потому что движок на Java написан (кажется тут кто-то такое заявлял) :)

anonymous ()
Ответ на: Re: Perl мертв. Долгой жизни Perl... от anonymous

Re: Perl мертв. Долгой жизни Perl...

>ЧТД, никаких хваленых текстовых преимуществ у перла нет. 
>А все остальное он и так делает хуже, чем другие.

#!/usr/bin/perl

my $test="nick00: пппппрррррииивеееет !!!!!\n";
sub  cut_block {
        my ($str,$maxlen) = @_;
        $str=~ s/(.*?)\1{$maxlen,}/$1/g;
        return $str;
}
print cut_block($test,2);

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

anonizmus ()
Ответ на: Re: Perl мертв. Долгой жизни Perl... от annonymous

Re: Perl мертв. Долгой жизни Perl...

>>Php для таких дел идеален. Именно для автоматизации веб -рутины.

месье очень хорошо и цинично пошутил, да ? %))

anonizmus ()
Ответ на: Re: Perl мертв. Да здравствует Perl! от anonymous

Re: Perl мертв. Да здравствует Perl!

>Я рассуждал об удобстве, а не о новых горизонтах перед математиками, если >абстрагироваться еще более, об удобстве программирования ВООБЩЕ, а не в >конкретно в Perl. Например, для меня намного удобнее выглядит запись

>($a, $b) = ($b, $a);

>чем, например

>int tmp = a; a = b; b = tmp;

Так можно делать в любом заслуживающем внимания скриптовом языке - даже если язык "так себе" - и к математике не имеет никакого отношения. А то, что ты собрался писать в юникоде и есть бесполезная нахлобучка, которая, якобы, пригодится математикам, а по сути - дополнительная возможность запутать код.

>Только люди, оперирующие понятиями синтаксиса Паскаля, Си и т.п. не поймут >первую запись, поскольку скованы рамками своего кругозора, и очень часто >отказываются изучать что-либо новое.

Звучит, как будто перл - единственный скриптовый язык и центр галактики, а все остальные периферийные программисты, пишущие на "Паскале, Си и т.п." просто не способны понять красоту Их Величества.

seiken ★★★★★ ()
Ответ на: Re: Perl мертв. Долгой жизни Perl... от anonizmus

Re: Perl мертв. Долгой жизни Perl...

> print cut_block($test,2);

Уважаемый быдлоперлокодер, а не спасёт ли тебя банальная функция substr() в данном случае? И огород не надо городить, и читается много лучше...

annonymous ★★ ()
Ответ на: Re: Perl мертв. Долгой жизни Perl... от anonizmus

Re: Perl мертв. Долгой жизни Perl...

> Узнается подчерк месье который привык рисовать в дельфи формочки %)) Такого уже ничем не проймешь %)

Друже, для личных наездов надо иметь хоть какие-то основания. А ты, похоже, считаешь, что критиковать перловские "достижения" могут только те, кто пользуется еще более тупыми средствами? Не вижу смысла мерятся пиписьками, рассказывать в каком году я применял, например, метапрограммирование на практике, но это было задолго до Perl 1.0 :) Так что все эти "фичи" перла смешны. Можно похвалить, конечно, как ребенка хвалят за его каракули, но для взрослого это уже смешно

anonymous ()
Ответ на: Re: Perl мертв. Долгой жизни Perl... от annonymous

Re: Perl мертв. Долгой жизни Perl...

>Уважаемый быдлоперлокодер, а не спасёт ли тебя банальная функция substr() в данном случае? И огород не надо городить, и читается много лучше...

ты не увиливай таки %) Я пример привел, естественно что там вместо приииветааа может быть произвольная строка с произвоольным кол-вом повторений. Ок, сделай решение на substr(), тоже будет интересно

anonizmus ()
Ответ на: Re: Perl мертв. Долгой жизни Perl... от anonymous

Re: Perl мертв. Долгой жизни Perl...

>Друже, для личных наездов надо иметь хоть какие-то основания. А ты, похоже, считаешь, что критиковать перловские "достижения" могут только те, кто пользуется еще более тупыми средствами?

Для личных мотивов не нужны основания, а критикуют перл обычно именно те кто юзает более тупые средства, иные помалкивают по очевидным причинам %) (метать бисер перед свиньями смысл каков ?)

anonizmus ()
Ответ на: Re: Perl мертв. Долгой жизни Perl... от annonymous

Re: Perl мертв. Долгой жизни Perl...

>Уважаемый быдлоперлокодер, а не спасёт ли тебя банальная функция substr() в данном случае? И огород не надо городить, и читается много лучше...

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

Я сильно так отстал от жизни, да ?

anonizmus ()
Ответ на: Re: Perl мертв. Долгой жизни Perl... от anonizmus

Re: Perl мертв. Долгой жизни Perl...

> Сначала про си шарп в институтах, теперь вот это... %-(

Регекспы в DNF кстати есть. И еще в C# 3.0 функциональщины заметно добавлили. Это к тому, что врага надо знать в лицо.

sv75 ★★★★★ ()
Ответ на: Re: Perl мертв. Долгой жизни Perl... от anonizmus

Re: Perl мертв. Долгой жизни Perl...

#! /usr/bin/env python
# -*- encoding: utf-8 -*-
import re

def remove_dupes(s, n):
    return re.sub(r'(.+?)\1{%d,}'%n, r'\1', s)
    
test=u"nick00: пппппрррррииивеееет !!!!!\n";
print remove_dupes(test, 2).encode('utf-8')

yk4ever ()
Ответ на: Re: Perl мертв. Да здравствует Perl! от seiken

Re: Perl мертв. Да здравствует Perl!

> Так можно делать в любом заслуживающем внимания скриптовом языке - даже если язык "так себе" - и к математике не имеет никакого отношения.

Согласен, что не имеет отношения к математике, я это, между прочим, в первом же предложении высказал - внимательнее читать надо (это же касается возвеличивания Perl)

anonymous ()
Ответ на: Re: Perl мертв. Долгой жизни Perl... от yk4ever

Re: Perl мертв. Долгой жизни Perl...

10x за питон, но надо бы на пхп все таки. (не буду же я вставлять одну строку регэкспа на перле или питоне в пхп проект %-(

anonizmus ()
Ответ на: Re: Perl мертв. Да здравствует Perl! от Gharik

Re: Perl мертв. Да здравствует Perl!

> не отвалилось ли чего при нахождении красноглазыми хаккерами очередной критической уязвимости в перле? Или апачу вставлять mod_perl, который способен поставить раком полсистемы в случае чего?

яндекс что-то раком не становится

а по-поводу уязвимостей в Perl'e -- это такой редкий зверь, что раз в год обновиться не проблема.

Вот поддерживающим сайты на пых-пыхе я не завидую

vadiml ★★★★★ ()
Ответ на: Re: Perl мертв. Долгой жизни Perl... от anonizmus

Re: Perl мертв. Долгой жизни Perl...

> уважаемые phpводы (ну и заодно пистоно), приведите плиз аналог функции этой,

Ты наверно думаешь, что регекспы только в Перле имеются :)

Hjorn ()
Ответ на: Re: Perl мертв. Долгой жизни Perl... от anonymous

Re: Perl мертв. Долгой жизни Perl...

> На лор-е есть такая весьма распространненая порода обитателей, скажу я вам, которая, подобно мальчикам, которые кидают "какашками" в понравившуюся им особь противоположного пола, пытаются унизить собеседника путем грубости, либо откровенного 4.2 в надежде на то, что им дадут ответ на интересующий их вопрос, в котором они совершенно не разбераются. Почему бы просто не спросить, как взрослые?

дядя, а куда лучше?

anonymous ()
Ответ на: Re: Perl мертв. Долгой жизни Perl... от anonizmus

Re: Perl мертв. Долгой жизни Perl...

> Слушай, но тут фактически одна строка с крайне примитивным регэкспом

Да, ты прав. Регексп будет тот же, просто переменную в него втыкать нельзя. Можно так:
$str= preg_replace('/(.?)\1{'.$maxlen.',}/','$1', $str);

annonymous ★★ ()
Ответ на: Re: Perl мертв? Да здравствует Perl! от Gharik

Re: Perl мертв? Да здравствует Perl!

> А уж какую радость составляют проекты на CPAN, где разве что перловая скриптизация КДЕ отсутствует - это ж словами не описать.

для KDE3 -- входит в состав perlQt-3 самой последней версии, которой на CPAN'е нет

и для KDE4 -- будет ;)

vadiml ★★★★★ ()
Ответ на: Re: Perl мертв? Да здравствует Perl! от vadiml

Re: Perl мертв? Да здравствует Perl!

> для KDE3 -- входит в состав perlQt-3 самой последней версии, которой на CPAN'е нет

Самая последняя версия - это какая? Оно ведь умерло года три назад кажись. Или я отстал от жизни?

Hjorn ()
Ответ на: Re: Perl мертв. Долгой жизни Perl... от anonymous

Re: Perl мертв. Долгой жизни Perl...

>> Поэтому что Питон, что Перл, что С - разницы особо никакой (при прямых руках).

>ЧТД, никаких хваленых текстовых преимуществ у перла нет. А все остальное он и так делает хуже, чем другие.

Анонимус, обучись не выдергивать фразы из контекста, не будешь выгдялеть дураком.

stellar ()
Ответ на: Re: Perl мертв. Долгой жизни Perl... от anonymous

Re: Perl мертв. Долгой жизни Perl...

> Все эти и многие другие фичи ваши игрушечные языки тащат (в большей и меньшей степени удачно) из лиспа. Только в лиспе они существовали уже давно, и лисп умудряется реализовывать их все не в тормозных интерпретаторах, а с оптимизирующей компиляцией в машинный код (после чего становится смешно, когда начинают меряться скоростью: "питон тормозит всего в 1000 раз по сравнению с С, а перл в 2000" - бугага-с.

Да ну?

http://norvig.com/python-lisp.html

anonymous ()
Ответ на: Re: Perl мертв. Долгой жизни Perl... от anonymous

Re: Perl мертв. Долгой жизни Perl...

> Да ну? http://norvig.com/python-lisp.html

А что? > execution time is much slower than Lisp, often by a factor of 10 (sometimes by 100 and sometimes by 1). Qualitatively, Python feels about the same speed as interpreted Lisp, but very noticably slower than compiled Lisp.

Обратите внимание, питон написан на С. Поэтому когда программа на питоне (перле и пр.) просто представляет собой последовательность вызовов сишных подпрограмм, то это и будет фактор 1–10. Напишите что-то нетривиальное, будет 100-1000.

anonymous ()
Ответ на: Re: Perl мертв. Да здравствует Perl! от yk4ever

Re: Perl мертв. Да здравствует Perl!

> Перл не проходит проверки на универсальность

Глупости. Проходит и с полным успехом (один из самых универсальных языков, поддерживающий большинство парадигм программирования). Кто же виноват, если ты не освоил всех его возможностей. Ещё не поздно освоить.

> Поэтому считаю нужным перл давить и гонять. Я им не пользуюсь, но сам факт его существования рядом со мной - создаёт чувство дискомфорта.

Если учесть, что Перл предоставляет не меньше (а если рассматривать высший пилотаж, то больше) возможностей, чем твой любимый Питон, то придётся по твоей логике давить именно Питон. Это всё твои комплексы и нежелание выучить язык на таком уровне, чтобы писать кристально читабельный и оптимальный код. Есть такое мнение, что бриллиантовый программист на любом языке будет писать исключительно бриллиантовые программы, а уж тем более на одном из богатейших по возможностям языке. Может просто тебе природой не дано? В любом случае, твои комплексы и незнание не дают тебе право испражняться повсюду. Ну, пришёл и испражнился, тебе стало менее дискомфортно?

> В мире Open Source есть такая розовая мечта - чтобы программировали ВСЕ. А перл эту мечту убивает, ибо язык тяжёлый

Это утверждение не менее абсурдно, чем следующее. В научном мире есть такая розовая мечта, чтобы научные открытия делали ВСЕ, а наличие университетов убивает эту мечту, так как обучение в них тяжёлое.

mihalych ★★★ ()
Ответ на: Re: Perl мертв. Долгой жизни Perl... от yk4ever

Re: Perl мертв. Долгой жизни Perl...

учи матчасть прежде чем газифицировать лужи

это перл перекрывает sed и awk, но не наоборот.

tesla ()

Re: Perl мертв. Да здравствует Perl!

Там говорили, что в питоне плохо со вложенными циклами.. Легко.. юзайте исключения (функциональность выкидываю, сохраняю смысл):

# ====
a1 = [2, 5, 7, 3, 8, 0, 2]
a2 = [3, 5, 3, 8, 9]

class Continue(Exception):
    pass

for i in a1:
    try:
        for j in a2:
            print 'j =', j
            if i>j:
                raise Continue()
    except Continue:
        print 'ups.. %s > %s' % (i, j), 'continuing..'
        continue
    print 'End of outer cycle for i =', i
# ====
Или же можно так:

for i in a1:
    try:
        for j in a2:
            print 'j =', j
            if i>j:
                raise Continue()

        print 'End of outer cycle for i =', i    
    except Continue:
        print 'ups.. %s > %s' % (i, j), 'continuing..'

Таким способом, можно выйти практически из цикла любой вложенности, просто нужно те вложенные циклы окружить в raise-except на том уровне,
куда планируется выходить.

@mihalych
>Если учесть, что Перл предоставляет не меньше (а если рассматривать
высший пилотаж, то больше) возмозностей, чем твой любимый Питон

интересно, где же больше и какой пилотаж имеется в виду?

xonix ()
Ответ на: Re: Perl мертв. Да здравствует Perl! от xonix

Re: Perl мертв. Да здравствует Perl!

>интересно, где же больше и какой пилотаж имеется в виду?

например смена перечня родительских классов объекта налету

в перле такое довольно несложно сваять

только не надо сразу уходить в область "зачем это может понадобиться"

вполне может, для создания разнообразных рестриктед ареав например

xargs ★★★ ()
Ответ на: Re: Perl мертв. Долгой жизни Perl... от anonizmus

Re: Perl мертв. Долгой жизни Perl...

> слава Ктулху хоть дельфи сдох наконец вроде, одним убожеством меньше...

не сдох, Borland выпустила дельфу для php -- быдло для быдла -- ОНИ НАШЛИ ДРУГ ДРУГА!!! УРА, ТОВАРИЩИ!!!

vadiml ★★★★★ ()
Ответ на: Re: Perl мертв. Да здравствует Perl! от xargs

Re: Perl мертв. Да здравствует Perl!

> например смена перечня родительских классов объекта налету

#! /usr/bin/env python
class y:
    yvar = 'y'
class z:
    zvar = 'z'
class x(y):
    xvar = 'x'
    def change_base_to_z(self):
        print self.__class__.__bases__
        self.__class__.__bases__ = (z,)

xx = x()
xx.change_base_to_z()
print xx.zvar

Теперь потрудитесь показать как это делается в быдлоперле.
А я добродушно посмеюсь над вашими закорючками.

yk4ever ()
Ответ на: Re: Perl мертв. Да здравствует Perl! от yk4ever

Re: Perl мертв. Да здравствует Perl!

> Видишь ли, не у всех хватает времени и терпения освоить КУЧУ инструментов.

Кому не хватает времени, идут в дворники.

> Перл не проходит проверки на универсальность - вне своего маленького мирка (быстрый парсинг текстов) он довольно-таки неуклюж и для освоения труден.

У меня есть проекты на 7-8 тыщ строк на Perl, с демонизацией процессов, распараллеливанием сетевых действий, работой с SQL и текстами -- мне подходит. А есть проект, где я прототип взялся делать на Perl, а теперь выясняется, что переделывать времени просто нет, и 4000 строк переписывать просто некогда, что сейчас надо срочно доделать часть, которую надо было показать ещё несколько месяцев назад. И в данном случае, Perl, как инструмент для написания _этой_ задачи, на самом деле не подходит, многое там выглядит неудобно, много математики и сложных структур данных. Но это _моя_ ошибка, а не языка.

Casus ★★★★★ ()
Ответ на: Re: Perl мертв. Долгой жизни Perl... от annonymous

Re: Perl мертв. Долгой жизни Perl...

>> print cut_block($test,2); > Уважаемый быдлоперлокодер, а не спасёт ли тебя банальная функция substr() в данном случае?

substr умеет резать повторения любой сложности? и 'ааа' и 'developers developers developers !!!' одновременно сможет обработать?

vadiml ★★★★★ ()
Ответ на: Re: Perl мертв. Да здравствует Perl! от Casus

Re: Perl мертв. Да здравствует Perl!

> многое там выглядит неудобно, много математики и сложных структур данных.

А вот Питон подошел бы _и для этого_ :)

tailgunner ★★★★★ ()
Ответ на: Re: Perl мертв? Да здравствует Perl! от Hjorn

Re: Perl мертв? Да здравствует Perl!

>> для KDE3 -- входит в состав perlQt-3 самой последней версии, которой на CPAN'е нет

> Самая последняя версия - это какая? Оно ведь умерло года три назад кажись.

да, потому до CPAN'a и не доехало

vadiml ★★★★★ ()
Ответ на: Re: Perl мертв. Да здравствует Perl! от yk4ever

Re: Perl мертв. Да здравствует Perl!

>#! /usr/bin/env python
>class y:
>    yvar = 'y'
>class z:
>    zvar = 'z'
>class x(y):
>    xvar = 'x'
>    def change_base_to_z(self):
>        print self.__class__.__bases__
>        self.__class__.__bases__ = (z,)

>xx = x()
>xx.change_base_to_z()
>print xx.zvar

#!/usr/bin/perl
package y;
что-то в y;

package z;
что-то в z;

package x;
чего-то много в z;

package main;

$xx = x();
...
print $xx->zvar;

отступы поменялись на ';'





vadiml ★★★★★ ()
Ответ на: Re: Perl мертв. Да здравствует Perl! от yk4ever

Re: Perl мертв. Да здравствует Perl!

> А я добродушно посмеюсь над вашими закорючками.

Смейся: @X::ISA = ('Z');

Полный пример (можно запустить perl и сделать туда copy-paste, чего не сделать с python):

package Y; sub yvar { 'y' }
package Z; sub zvar { 'z' }
package X; @ISA = ('Y'); sub change_base_to { @ISA = @_; }

package main;
$xx = bless {}, "X";
print $xx->yvar;
$xx->change_base_to("Z");
print $xx->zvar;

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