Was macht diese Perl-Zeile aus einer "gebleichten" Datei?

8

Ich habe einige Perl-Dateien, die "gebleicht" wurden (weiß nicht, ob es von ACME :: Bleach oder etwas Ähnlichem war). Da ich nicht sehr flüssig mit Perl arbeite, würde ich gerne verstehen, was der Einzeiler, der die Datei startet, tut, um den folgenden Whitespace zu entschlüsseln:

%Vor%

Der Rest der Datei besteht aus Leerzeichen, und die Datei ist selbst ausführbar (sie befindet sich in einem Verzeichnis / bin).

[Lösung], dank @JB.

Der Anteil von pack scheint am komplexesten zu sein, und ich brauchte eine Weile, um zu bemerken, was vor sich ging. Pack nimmt die LSB nur von jeweils acht Zeichen und entpackt diese als Big-Endian-Zeichen in Binärform. Tabulatoren werden so zu "0's" und Leerzeichen zu "1's".

%Vor%     
JimB 26.09.2011, 14:37
quelle

2 Antworten

10
  • $_ = << ''; liest den Rest der Datei in den Akkumulator.
  • y;\r\n;;d; entfernt Zeilenumbrüche und Zeilenvorschübe.
  • $_ = pack 'b*', $_; konvertiert Zeichen in Bits in $_ , LSB zuerst.
  • $_ = eval; führt $_ als Perl-Code aus.
  • $@ && die $@; $_ behandelt Exceptions und den Rückgabecode ordnungsgemäß.
JB. 26.09.2011, 14:58
quelle
3

Sie können unbleach.pl verwenden, um das Bleichen zu entfernen, wenn Sie das wirklich versuchen .

    
ikegami 26.09.2011 19:07
quelle

Tags und Links