#!/usr/bin/perl # q0.pl - Don Yang (uguu.org) # # Perl port of q0.ml. Proves that Perl is better with strings ;) # # 08/04/03 $template = "P.bK .bEaE."; $data = "kfool#tlqog"; $key = 3; sub xor_string { $r = ''; foreach $c ($_[0] =~ /./g) { $r .= chr ((ord $c) ^ $_[1]); } return $r; } sub remove_space { ($x = $_[0]) =~ s/ //g; return $x; } sub format_text { $t = $_[1]; foreach $x ($_[0] =~ /./g) { if( $x ge 'A' && $x le 'Z' ) { print (substr $t, 0, ($x = ord($x) - 64)); $t = substr $t, $x; } elsif( $x ge 'a' && $x le 'z' ) { print ' ' x ((ord $x) - 96); } else { print "\n"; } } } format_text remove_space($template), remove_space("header $template$data" . xor_string($data, $key));