- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
BEGIN
{
my $gGls; # Hash reference for global variables, settings.
# To get a handle to access the global hash.
sub getgGls
{
return $gGls;
}
# "Fasten" the script name on $gGls->{ 'gScriptName' } instead of the perlish awkward $0.
$gGls->{ 'gScriptName' } = $0;
# ...
венгерская, блин.
?
я очень книгу про верблюда любил
и еще пёрл за 24 часа
я на нем в 2001м году свой первый веб чат написаол! chat.cgi
это писалось С++шником, у которого случился brain damage от длительного использования дезайн паттернов.
напоминает одного джависта который стал в питоне вручную аксессоры и мутаторы хуячить на все поля
На самом деле Perl был глотком воздуха в 80х для обработки логов: он точно лучше чем bash+sed+awk или c для этих целей
И кстати тне IOCCC а OPS: https://en.wikipedia.org/wiki/Obfuscated_Perl_Contest
Вообще язык хорош, но когда к нему пришла популярность, стало невозможным обсуждать код без "тру-перловиков", требующих заменить пять строчек кода, понятного и младенцу, на однострочник, который и с мануалом тяжело понять.
зы: вообще хватит пинать труп. Перл сыграл ОГРОМНУЮ роль в автоматизации юниксов и становлении веб-программирования времен web 1.0, за что ему ОГРОМНОЕ спасибо!
Но сейчас на нем пишут всё меньше.
>проблема прыщей
Ясен хуй. ЧСВишко же надо как-то потешить.
и не только это. перл был одним из первых mainstream языков где присутствовали почти все современные фишки, типа модулей, namespaces, closures, GC, динамическое исполнение, работа с двоичными данными, слабая типизация.
даже тот же ORM: в первые это я увидел на перле. потому что на перле отностительно просто в рантайме структуру базы вычитать и динамически классы сгенерировать.
когда питонщики все еще дискутировали что хорошо, что плохо - перловцы уже этими чудесами современной техники пользовались.
>слабая типизация.
/0
Кстати, а почему она слабая, если есть операторы для строк и для чисел?
>closures
Через какую сраку они там сделаны? Через какую сраку сделаны модули (последняя строчка должна быть 1;)? Как там создать объект? Как различать член класса и объекта? Впрочем, я это уже в том самом перлосраче писал.
Перд возможно реально появился и раньше, но сегодня этому уебищу хорошо бы сдохнуть.
Потому что можно числа в строки неявно переводить
>>Через какую сраку они там сделаны?
да, через сраку
синтаксис у перла на любителя
>>сдохнуть
сдохнуть надо php, javascript, visual basic и mysql. Остальные пусть жывут
Каким образом?
>сдохнуть надо php, javascript, visual basic и mysql. Остальные пусть жывут
Тоже правда, но как это мешает сдохнуть перлу?
Пхп вполне подходит для говностраничек. Вот с фреймверками там жопа. Я не знаю зачем они там вообще нужны - не проще ли сразу питон освоить?
Это на случай если ты хочешь различать числа и строки.
> > closures
> Через какую сраку они там сделаны?
никаких срак. просто ссылки на функции + context capture. более или менее точно так же как и в С++, но только на 10+ лет раньше.
> Через какую сраку сделаны модули (последняя строчка должна быть 1;)?
Это фича, идиот: модуль может заявить что он не смог загрузится.
> Как там создать объект? Как различать член класса и объекта?
почитай perlmod & perlootut - там все описано.
> Впрочем, я это уже в том самом перлосраче писал.
Ну даже если ты смог на нём что-то написать, то это я думаю уже однозначно можно занести в достижения языка.
И почему говорят что перл сложный?....
А по-человечески нельзя было сделать? Хотя бы return 1...
перл же динамический язык: когда модуль читается, уже что-то может исполнятся.
А где их можно не различать, ну кроме подстановки в строку?
>точно так же как и в С++, но только на 10+ лет раньше.
Языки немного разного уровня.
>Это фича, идиот: модуль может заявить что он не смог загрузится.
А ну да, забыл же, что в вашем уебище нет исключений. Но почему не сделать его "успешно загрузившимся" по умолчанию?
>почитай perlmod & perlootut - там все описано.
Спасибо, я уже эту проблему решил, перейдя на питон.
Чем разобраться как правильно писать на этом недоязыке мне оказалось проще перейти на другой. Достижение, хуле.
операции сравнения. на самом деле можно различать везде, если надо: рефлексия существует очень давно.
> А ну да, забыл же, что в вашем уебище нет исключений.
ты забыл "die".
> Но почему не сделать его "успешно загрузившимся" по умолчанию?
потому что люди хотели фичу что бы модуль уже на фазе парсинга мог сказать что он не может загрузится? типа: проверка версий, проверка наличия внешних либ, проверка окружения, проверка версии ОС - и все остально что только можно придумать.
Т.е. "000" == "0"? Ну это и есть пиздец.
>ты забыл "die".
Ахаха, да, я еще помню eval / die. Но зачем, когда есть нормальные исключения?
Ты не понял. Чтобы модуль по умолчанию возвращал "успех" без этих 1;
в чем тут "пиздец"? это как бы и есть главная фича слабо-типизированых языков: автоматическое неявное приведение типов, в зависимости от контекста.
это правда что пых изначально слизал систему слабой типизации с перла. но в 2-/3-/4-х версиях они это в жопу сломали, почему в посдествии им пришлось вводить операторы строгого сравнения. и как следствие, все те баги которые за этим последовали.
к перлу это не имеет отношения. (плюс, если ты хочешь, то перловый ОО, насколько б убогим он не был, позволяет реализовать строгую типизацию.)
PS к слову, это одна из причин почему перл изначально и имеет разные операторы сравнения: для строк и для чисел.
>perl -e "print '0e123'=='0'
1
если ты даже этого не знаешь (уровень: первые 20 страниц "learning perl") то твои загоны что ты когда то на перле что-то писал это просто загоны. да что еще от 3.14дара и можно ожидать...
http://govnokod.ru/14052#comment345052
>операции сравнения.
Без дискриминаций по нику, пожалуйста. Ты уже забыл как я тебе под анонимбом вялым по губам провел?
это называется "перепутал".
потому что ты и вопрос сформулировать не способен.
и гонишь всякой херни немеряно. и врешь открыто.
> Ты уже забыл
у меня не та ориентация. на пидаров не западаю.
с другой стороны, дай угадаю: ты ту же самую тупую херню постил без остановки, и т.к. ты был последним кто постил в треде, ты решил что ты "выиграл" техническую дискусию? потому что на основании квалификации, ты на ГК где-то в самых последних 10% и по другому как тупым троллингом ты ничего достичь здесь не можешь.
>> А где их можно не различать, ну кроме подстановки в строку?
>операции сравнения.
Операций сравнения 2: для строк и для чисел. Где слабая типизация?
Питушок, мне влом тот срач искать, но кончился он тем, что тебя признали конченым перлоебом, живущим в перломирке, а перл - устаревшей хуйней, которой скатертью дорога в гроб.
Все-таки интересно, зачем тебя в гермашку пригласили? Немцы не хотят добровольно учить ебанутое легаси и проще оказалось гастера пригласить?
Так чего ты его защищаешь тогда? И зачем тебя сюда пригласили?
я не защищаю. я просто корректирую твои ложные заявления.
если давать шанс таким пидорасам как ты лгать безконтольно - чаще просто по невежеству - то случайно может кто-то за правду принять.
это как бы и есть эффект интернета: даже такие невежды и дилетанты как ты могут очень громно и очень много вещать, как если бы они были экспертами.
>> А где их можно не различать, ну кроме подстановки в строку?
>операции сравнения.
Операций сравнения 2: для строк и для чисел. Где слабая типизация?
Так расскажешь чего тебя в гермашку пригласили? Немецкие шлюхи сосут плохо?
Как я и говорил. Ту же самую херню постишь без остановки....
>А где их можно не различать, ну кроме подстановки в строку?
При работе со значениями из <input> на клиентской или серверной стороне.
Пользователь поменял значение диафрагмы - скрипт взял aperture.value, неявно скастовал в число, и добавил логарифм квадрата относительного изменения к exposure.value (тут в JS возникает питушня из-за того, что число пойдёт в строку под действием "+"). Пользователь поменял exposure.value - скрипт как-то раскидал изменение по оставшимся параметрам (а тут уже нужно умножение, поэтому питушни не будет).
На серверной стороне - какая-нибудь валидация количеств выдаваемых результатов. Пользователь говорит: ?q=pituxi+jpg&nimages=100500, а сервер ему "100500 - много, мы можем только 1000, у нас сервер не резиновый".
Ну или пример вышеописанного калькулятора, если вдруг формулы засекречены.
Я рассматривал общий случай на примере веб-питушни, держа в голове JS и PHP.
И на прграммистов тоже повлиял)
в других новостях, Перл6, не смотря на официальный запуск, все еще мерт.
Например в 2000м веб это всегда был перл (ну по крайней мере в России)
в 2002м уже мог быть PHP. В 2009м вероятнее всего это был бы Ruby. Сейчас питон или nodejs.
а это вообще забавная вещь: кто-то написал интерпретатор перла "perlito" (и причем единственный альтернативный и достаточно компетентный) для nodejs. это реально транслятор перла в JS.
если кто-то хочет - наконец таки - JIT для пятого перла, то перлито это реальный вариант.