Это сайт — моя персональная записная книжка. Интересна мне, по большей части, история, своя жизнь и немного программирование.

Perl 1

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

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

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

К первой версии идёт пятьдесят тестов, написанных на Перле тех времён. Я бегло их просмотрел и, на первый взгляд, язык как будто мало изменился, тем не менее какие-то различия бросаются в глаза. Например, массивы с какого-то перепугу, выглядят иначе — временами без @ в начале, do каким-то образом позволяют обращаться к ещё не объявленным функциям, а ещё в языке существует переменная с именем «пробел».

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

for ($i = 0; $i <= 999999; $i++)
{
    $a = ('0' x (6 - length($i))) . $i;
    $c++ if (substr($a, 0, 1) + substr($a, 1, 1) + substr($a, 2, 1)) ==
    (substr($a, 3, 1) + substr($a, 4, 1) + substr($a, 5, 1));
}
print "$c\n";

Вот что пришлось исправить: изменить синтаксис цикла, ну и скобок побольше наставить.

Производительность, кстати, изменилась значительно — первая версия выполняет эту программу за 1,7 секунд, а современный Перл на том же оборудовании — за 0,8 секунды.

2 комментария
hsh 1 мес

cовременный Перл на том же оборудовании — за 0,8 секунды.

так скобок же меньше!

Евгений Степанищев 1 мес

Наверное Лисп дико медленный!

Александр Тесанов 1 мес

Перл — удивительный язык.

С одной стороны, я в обычной жизни не могу без него обойтись. Использую для задач, когда писать то же самое на shell слишком напряжно.

С другой стороны, не рекомендую этот язык для изучения никому. Слишком легко на нём писать лютую нечитаемую дичь и, как следствие, приобретать вредные привычки.
(Я бы и про C++ так сказал, но там гораздо проще держать себя в рамках приличий.)

Евгений Степанищев 1 мес

Я, кстати, раньше тоже постоянно писал на нём однострочники, если на шелле было сложно что-то выразить. Сейчас, обычно, это python или php, но чаще всего я всё же делаю всё на шелле.