|
|
ru.website- RU.WEBSITE ------------------------------------------------------------------- From : Serge Shikov 2:5020/400 22 May 2000 17:36:07 To : All Subject : Re: каталоги на сайте --------------------------------------------------------------------------------
Alexey Medvedev wrote:
>
> SS> если человек их знает - он начинает писать сразу, и достаточно
> SS> быстро.
> Hу тогда объясни мне скрипт, который печатает HelloWorld :
> -------------------------------------------------------
> #!/usr/bin/perl
> $_=q$qsjou<vd<r<aia+<rr<bfmmp+<xpsme=\ob$;
> y?<-@*-.b-z? -$+-/a-y?;s=\D+=$&=ee
Да, так на этот скрипт у меня ушло еще примерно 5 минут... Дольше все
это написать, чем понять. Объясняю:
$_=q$qsjou<vd<r<aia+<rr<bfmmp+<xpsme=\ob$;
Всего-лишь присваивание, тривиальное до безобразия. Переменной $_
присваивается константа, заключенная в скобки $...$ Это такой способ
квотить всего-лишь.
y?<-@*-.b-z? -$+-/a-y?;
Всего-лишь транслитерация - оператор y///. Разделитель - символ ?, все
что между первыми двумя ?, заменяется на то, что между вторыми ??, т.е.
<-@*-.b-z
заменяется на
-$+-/a-y
Что получится из строки qsjou<vd<r<aia+<rr<bfmmp+<xpsme=\ob, если
заменить < на пробел и т.п., надо рассказывать? Да, запись a-y означает
все символы от a до y.
Hу и последнее:
s=\D+=$&=ee
это оператор s///ee, в качестве разделителя вместо / - символ '='. \D+,
т.е. последовательность из одной и более не-цифры заменяется на $&. Как
это работает, что такое $&, и почему получается Hello, world! - это
простое домашнее задание еще на 5 минут.
--- ifmail v.2.15dev5
* Origin: home (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.website/2825c9823a94.html, оценка из 5, голосов 10
|