Итак мы спускаемся внизу по коду, отбрасываем всё лишнее как в этой статье (
https://www.dlitz.net/stuff/malicious-perl-sig/ ) и концентрируемся на строчках:
s;;=]=>%-{<-|}<&|`{;;
y; -/:-@[-`{-};`-{/" -;;
В первой строчке выполняется простая модификация-присвоение по аналогии замены пустоты на сожержимое (s//text/), где разделитель ";", а ";" в конце строки это конец команды.
Итак мы получили $_ равной =]=>%-{<-|}<&|`{
Далее идет оператор "y", он же tr.
Магия постороена на диапазонах. Разберем первый диапазон " -/" заменяется на "`-{". Если открыть таблицу ASCII, то хорошо видно что первый диапазон соответсвует всем символам:
а заменяется он на диапазон "скрывающий" значимый алфавит:
Тоже самое c остальными диапазонам символов. Разберите это уже сами :)
А в итоге получается, конечно, system"rm -rf /"