Классический код игры в гольф. Напишите самую непонятную Perl-программу для печати «Просто еще один Perl-хакер». Вот статья в Википедии об этом. Бонусные баллы, если он умещается в 3 строки / 70 символов каждая.
popularity-contest
obfuscation
perl
Томас О
источник
источник
Ответы:
Я не уверен, нужен ли перевод строки в конце: если это так, добавление
."\n"
еще не приводит меня к пределу в 3 строки * 70 символов / строка.Если бы не проблемы с кодированием, инициализация могла бы быть намного меньше и извлекаться с распаковкой, поэтому я ожидаю, что кто-то может улучшить это. Я думаю о создании более эффективной версии - это O (n ^ 2), и возможно декодирование O (n lg n).
источник
источник
анимационная версия :)
источник
Менее 70 символов в 3 строках:
Уход: это кодируется ISO-8859-1 .
Всего более 70 символов, но менее 100!
И немного запутано !
Немного подальше ?!
Существует сценарий Perl <1000 с полной помощью и некоторыми функциями:
(Это тоже ISO-8859-1 ;)
Есть несколько особенностей:
Где:
-v
подпись-h
строка помощи-j
подскажите Просто еще один Perl-хакер.-c
анимировать JAPH строку или занесена строку , если таковые имеются-k
бросить сценарий сам-p
другой сценарийТак:
(Последняя строка анимирована :)
Пытаться де-запутать
В CPAN есть хороший модуль B :: Deparse :
Ну, это более читабельно, но ...
Хорошо, есть
pack('v', 27000)
, что это значит:Хм. так что мы могли бы попытаться упростить работу депарсера:
Что ж, теперь ясно, что весь сценарий содержится в
qq(...)
строке 2 и должен быть переданeval
. Мы могли бы сейчас:В надежде deparser мог лучше понять, теперь:
Что ж! Теперь у нас есть что-то почти читабельное. Это всегда дает тот же результат?
(И последняя строка анимирована :)
источник
Работает с включенными стриктурами. Хотя это не работает на всех машинах / perls, из-за
CORE'die
и~~%ENV
.источник