LINUX.ORG.RU

Актуален ли PERL?


0

0
Хочу изучить PERL в качестве первого ЯП. Пока что привлекает только консоль. Собственно вопрос: актуален ли PERL в качестве первого изучаемого языка? А для Linux - разработчика? Спасибо. P.S. Хочется принести хоть небольшую пользу OpenSource :)
Ответ на: комментарий от DonkeyHot
>Пошёл проверил -- 2 пакета его ещё хотят. Видать, то была неудачная >установка -- без logwatch и postfix.


adduser - написан на perl,вообще-то :))

и точно была неудачная установка ...


elipse ★★★
()
Ответ на: комментарий от tailgunner
> P.S. Кстати, ты так и не сказал, что делает это выражение.

Я так понимаю, что однострочников на перле все так боятся, что мысль запустить даже и не рассматривают? :-)

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от www_linux_org_ru
>Я так понимаю, что однострочников на перле все так боятся, что мысль запустить даже и не рассматривают? :-)

ты прав. наверное тем питон и лучше >.>
ниже уже все написали про эту строчку..
stave ★★★★★
()
Ответ на: комментарий от www_linux_org_ru
> > Читает stdin и выводит обратно только цифры.

> кхм... это делает perl -Wpe 's/\D+//g'

кхм... это делает tr -cd 0-9

dilmah ★★★★★
()
Ответ на: комментарий от elipse
>> На него debconf завязан.

>и не только

> debhelper - а это генерация всех пакетов

debhelper - не essential, он не втягивает Perl в базовую систему.

tailgunner ★★★★★
()
Ответ на: комментарий от stave
кстати, мой нубский вариант питона (15 минут гугления >.>):

import re
while 1:
m = re.search("\d+", raw_input())
if m:
print m.group(0)

имхо нагляднее некуда. я правильно уловил смысл этого однострочника?
stave ★★★★★
()
Ответ на: комментарий от dilmah
> кхм... это делает tr -cd 0-9

perl -Wne 'print "$1\n" if /(\d+)/' это НЕ tr -cd 0-9

З.Ы. С тебя причитается строка на авке, которую на перле долго-долго переписывать, ты не забыл?

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от stave
используй
  preformatted
    text

и вообще, пиши пример для баша, например
  python -XxXXx '...'
www_linux_org_ru ★★★★★
()
Ответ на: комментарий от www_linux_org_ru
>Я так понимаю, что однострочников на перле все так боятся

Просто все "real world" задачи, для которых достаточно однострочника, уже давно решены. А в "многострочниках" расходы на [$;{}] начинают перевешивать длинну "import"-ов и прочие "неприятности" конкурентов.

Т.ч. оно просто не интересно.

DonkeyHot ★★★★★
()
Ответ на: комментарий от stave
> имхо нагляднее некуда. я правильно уловил смысл этого однострочника?

что случится при конце файла? вообще-то нужен while !eof() или что там у вас

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от www_linux_org_ru
> С тебя причитается строка на авке, которую на перле долго-долго переписывать, ты не забыл?

ну это я гиперболизировал..

dilmah ★★★★★
()
Ответ на: комментарий от elipse
>adduser - написан на perl,вообще-то :))

Не везде. В федоре - ELF, в остальных не скажу, т.к. в отпуск ушёл.

>и точно была неудачная установка

У меня административное требование "удалить всё, что можно". logwatch пока используется, но уже на пределе возможностей, т.ч. вероятно будет убираться. postfix тоже необязателен -- by default в RHEL-е sendmail. Т.ч. ничего критичного :)

DonkeyHot ★★★★★
()
Ответ на: комментарий от tailgunner
debhelper - не essential,

А это уже кому как ....

> он не втягивает Perl в базовую систему.


А как нибудь на досуге проделайте:

#debootstrap --arch i386 lenny /var/lenny32 http//ftp.de.debian.org/debian

...

I: Extracting libuuid1...
I: Extracting login...
I: Extracting lsb-base...
I: Extracting lzma...
I: Extracting makedev...
I: Extracting mawk...
I: Extracting mktemp...
I: Extracting mount...
I: Extracting ncurses-base...
I: Extracting ncurses-bin...
I: Extracting passwd...
I: Extracting perl-base...
I: Extracting procps...
I: Extracting sed...
I: Extracting sysv-rc...
I: Extracting sysvinit...
I: Extracting sysvinit-utils...
I: Extracting tar...
I: Extracting tzdata...
I: Extracting util-linux...
I: Extracting zlib1g...
....

А вот пистона в базе и нима ...
От же ж горе какое !!
:)))
elipse ★★★
()
Ответ на: комментарий от DonkeyHot
> Просто все "real world" задачи, для которых достаточно однострочника, уже давно решены.

У сисадмина типичные задачи решаются именно однострочниками.

Вот я еще конверчу перловыми скриптами хтмл-ки сделанные гуглем из пдф-ок. Все лишние навороты над /.../ мне совсем не нужны.

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от www_linux_org_ru
> perl -Wne 'print "$1\n" if /(\d+)/
  
  awk -F'[^0-9]+' '{for(i=1;i<=NF;i++) {if ($i>0) {print $i; break}}}'

Страшненько
sdio ★★★★★
()
Ответ на: комментарий от guest-3484-2009
> Необязательно. Просто ваш аргумент относительно перла - никуда не годится.

Питон и шелл, вместе взятые, закрывают все применения Перла и еще много чего.

> не так уж и плохо быть "лиспофанбоем". Гораздо лучше, чем питонофанбоем, к примеру.

Это признание бывшего Питон-фанбоя? А я лично ненавижу Питон.

tailgunner ★★★★★
()
Ответ на: комментарий от www_linux_org_ru
>что случится при конце файла? вообще-то нужен while !eof() или что там у вас 

#!/usr/bin/env python

import re
import fileinput

for line in fileinput.input():
    m = re.search("\d+", line)
    if m:
        print m.group(0)  

ну или так, если с файлом
stave ★★★★★
()
Ответ на: комментарий от tailgunner
> Питон и шелл, вместе взятые, закрывают все применения Перла и еще много чего.

Они не закрывают применение перла для 1..20 строчников. Тут ему может конкурировать только руби, да и то, я руби не знаю, не скажу точно.

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от elipse
>> debhelper - не essential,

> А это уже кому как ....

Это разрабам Дебиан.

> А как нибудь на досуге проделайте:

> #debootstrap --arch i386 lenny /var/lenny32 http//ftp.de.debian.org/debian

Прикинь, как раз сейчас делаю это по многу раз :)

> А вот пистона в базе и нима ...

> От же ж горе какое !!

Сочуствую твоему горю...

tailgunner ★★★★★
()
Ответ на: комментарий от www_linux_org_ru
>Тут ему может конкурировать только руби, да и то, я руби не знаю, не скажу точно.

tcl - может уделать и руби, и перл и питон
да , не всегда будет это по скорости самый быстрый вариант
elipse ★★★
()
Ответ на: комментарий от www_linux_org_ru
>> Питон и шелл, вместе взятые, закрывают все применения Перла и еще много чего.

> Они не закрывают применение перла для 1..20 строчников

Знаешь, 1 строка или 4 - нет разницы. И скажи уже, что делал твой однострочник, с которого ты начал.

tailgunner ★★★★★
()
Ответ на: комментарий от stave
> ну или так, если с файлом

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

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от tailgunner
>Прикинь, как раз сейчас делаю это по многу раз :)

аха , заметно в этом треде :))

> Сочуствую твоему горю...


А это мимо
пистон это попсятина - и меня не цепляет

elipse ★★★
()
Ответ на: комментарий от tailgunner
> Знаешь, 1 строка или 4 - нет разницы. И скажи уже, что делал твой однострочник, с которого ты начал.

Знаешь, я ценю свои keystrokes и скорость чтения тоже (это на перле читается легче).

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от www_linux_org_ru
>и можно подумать, что из этих двух я предпочту набивать в ком.строке

хм, судя по этому топику, как минимум 3 человек не могли понять, что делает однострочник на перле. это при том, что тут вроде люди довольно разумные и знакомые с яп. 1 строчка против 6, но при этом уровень читаемости выше в разы. аргумент про вбивание в ком строку пропущу, легче 1 раз скрипт написать, чем постоянно вбивать в ком строку.

stave ★★★★★
()
Ответ на: комментарий от www_linux_org_ru
Если речь будет идти о замене для меня перла, то это будет явно не руби-питон-тикль, а язык, умеющий парсить вложенные скобки и делать простые операции над деревьями эффективно (мало символов).
www_linux_org_ru ★★★★★
()
Ответ на: комментарий от elipse
>>Прикинь, как раз сейчас делаю это по многу раз :)

> аха , заметно в этом треде :))

ч0рт, сколько телепатов вернулось из отпуска O_o

>> Сочуствую твоему горю...

> А это мимо пистон это попсятина - и меня не цепляет

Ну тогда и не горюй по нему ;)

tailgunner ★★★★★
()
Ответ на: комментарий от stave
> легче 1 раз скрипт написать, чем постоянно вбивать в ком строку

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

> это при том, что тут вроде люди довольно разумные и знакомые с яп.

Гы-гы-гы. Я не пишу на перле постоянно. Тут в треде никого еще из перл программистов похоже не было. Люди просто боятся перла.

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от www_linux_org_ru
>У сисадмина типичные задачи решаются именно однострочниками

У меня такое последний раз было лет 7 назад. С тех пор однострочниками не получается. Т.е. в одну строку написать таки можно, не во первых не во перловых а в bashенных -- там всё же другой уровень абстракции. А во вторых это обычно bash сам склеивает, пишется всё равно в несколько.

Кстати, эмулировать 'perl -n' довольно просто: устанавливаем модуль "nliner" с: 1. куча импортов 2. for _ in sys.stdin: 2. for exp in sys.argv[1:]: exec exp 4. опционально print _ в конце внешнего цикла

и потом "python -m nliner commands ... ". Т.о. эта киллернофичастость перла "стоит" установки 10(*n:)-строчного питонского модуля.

DonkeyHot ★★★★★
()
Ответ на: комментарий от www_linux_org_ru
>Тут в треде никого еще из перл программистов похоже не было. Люди просто боятся перла.

а теперь смотрим, что написал автор топика. перл нетривиален для начинающих, питон гораздо проще, и учиться по нему проще. при этом он пригоден для написания нормальных программ, а не только однострочников.

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

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

stave ★★★★★
()
Ответ на: комментарий от stave
> перл нетривиален для начинающих
если , не выделываться и не гнуть пальцы (как в этом треде)
то вполне даже и тривиален
elipse ★★★
()
Ответ на: комментарий от DonkeyHot
> Т.о. эта киллернофичастость перла "стоит" установки 10(*n:)-строчного питонского модуля.

Почти каждая фича скриптового языка стоит установки маленького модуля.

Но стоит ли он в питоне по умолчанию? Поймет ли другой питонист тебя сразу, когда ты напишешь python -m nliner commands ... ?

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от stave
>судя по этому топику, как минимум 3 человек не могли понять, что делает однострочник на перле

Да можно хоть на литературном русском написать, обязательно найдётся несколько личностей, которые не поймут. Т.к. не знают русского языка в т.ч.
И ни питон, ни руби тут не исключение.
tzukko
()
Ответ на: комментарий от www_linux_org_ru
>если что, перл тоже не пригоден для написания нормальных программ

Твои "однострочники" внезапно стали ненормальными - не пиши больше их.
tzukko
()
Ответ на: комментарий от tzukko
> Твои "однострочники" внезапно стали ненормальными - не пиши больше их.

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

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от DonkeyHot
> Хотя да, свои удобства везде есть. Кроме жавы

Удобство Явы в IDE, например, Eclipse + JDT. Все опечатки подсвечиваются на лету, всё автодополняется. Авторефакторинги - вообще сказка. Сводит на нет все тупые ошибки, благодрая чему очень становишься очень ленивым.
Score-49
()
Ответ на: комментарий от www_linux_org_ru
>для нормальных программ нужна статическая типизация.

Дада, все мы помним слова Н. Вирта. Но тем не менее, связка Python + C мне импонирует.

stave ★★★★★
()
Ответ на: комментарий от DonkeyHot
> Кстати, эмулировать 'perl -n' довольно просто: устанавливаем модуль "nliner"

Потом ты сделаешь модуль для понимания open("| my_command"), потом еще модуль для ... а потом питонисты перестанут понимать твои однострочники.

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от www_linux_org_ru
Ладно, я придираюсь не в тему.
Но большинство перловых мелкострочников, лично у меня - это самые что ни есть долгоживущие лично мной изготовленные программы.
Они делают мало, но делают это хорошо.
Юних-вей.
tzukko
()
Ответ на: комментарий от Score-49
>Удобство Явы в IDE

Учитывая ее многословность, только на IDE уповать и остается. Представляю написание геттеров/сеттеров руками...

stave ★★★★★
()
Ответ на: комментарий от stave
>Представляю написание геттеров/сеттеров руками...

Один раз пишется небольшая порнограмма на перле...
tzukko
()
Ответ на: комментарий от www_linux_org_ru

Cистема генерации пакетов и управление базой настроек в debconf Debian - куда запишем по вашей классификации ?

adduser - это одноразовый многострочник ? :))))

Короче - это все чепуха.
У программ есть одна ценность - быть работающими и полезными.
Все иное - уже вторично и от идеологических тараканов в голове :)))

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