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 ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.