|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Pavel Kurnosoff 2:5030/736.25 01 Apr 2000 00:04:13 To : Andrew Konovalov Subject : Re: злой скpипт 8-) --------------------------------------------------------------------------------
AK> Кто-нибyдь может объяснить мне, как вот *ЭТО* выводит "Hello, World!"
AK> -
AK> #!/usr/bin/perl
AK> $_=q$qsjou<vd<r<aia+<rr<bfmmp+<xpsme=\ob$;
AK> y?<-@*-.b-z? -$+-/a-y?;s=\D+=$&=ee
AK> Ооочень интеpесно!
легко (с)
ну, для начала приведем к более читабельному виду, разделив на очевидные блоки:
#!/usr/bin/perl
$_='qsjou<vd<r<aia+<rr<bfmmp+<xpsme=\ob';
tr/<-@*-.b-z/ -$+-\/a-y/;
s/\D+/$&/ee
ну, первая строка понятно.
вторая - приводим $_ в нормальный вид:
print uc q aha, qq aello, world!\na, что означает
print uc 'h', "ello, world!\n"
третья - дословно, заменить подстроку из нецифорвых символов (т.е. в нашем
случае всю строку) на рез-тат выполнения оной подстроки, который на самом деле
попутно выведет текст на экран.
вобщем, не такой уж ты страшный, бэтмэн! (с) анекдот :)
зы: пишутся такие вещи ессно в обратном порядке, т.е. постепенно навешивают
ненужные, но пудрящие мозги, замены, трансляции, пользуются тем, что
разделителем в s/m/tr/y/q/qq может быть любой символ и т.д.
--
// pavel f. kurnosoff -[ICQ:4590687]-[pqr@yasp.com]...
--- Gnus v5.5/XEmacs 20.4 - "Emerald"
* Origin: live like there's no tomorrow (2:5030/736.25)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/3959c0705ec0.html, оценка из 5, голосов 10
|