« みっきーの名言3 | main | コスプレキーボード »

全てがpoになる1 liner

思ったより面白かった。
% perl -pe 's/¥w/po/g' GMMI.pm
#!/popopo/popopo/popopopo -po

popopo popopopopopo;
popopo popopopopopopopopopopopopopopopo;
popopo popopopopopopo;
popopo popopopopopopopopopopopopopopo;
popopo popopopo::popopopopopo;

######################################################
# popopopopopopopo/popopopopopopopo popopopopopopopo popopopo popopo popo popopo
popopopopo popo #
# popopopopo popopopo popo popopopo popopopopopopopopo #
######################################################
popopo popopopo{
popo %popopopopopopopopopo = (
-po => [], # popopopopo popopopo popopopopopopopo popo po
popopo popopo
-po => [], # popopopopopopopo popopopopopopopo popo popop
opopo popopo
-po => po, # popopopopopo popopopopo
-po => popo, # popopopopopopo popo popopo-popopopopo
-po => po, # popopopo popopo 'popopopopopopo' popopopo
-po => po, # popopopo popopo 'popopopopopopo' popopopo
-popopopopopopopopo => po, # popopopo popopo 'popopopopo-p
opopo popopopopopopopopopo'
@po,
);
...

コメント (3)

へんなもんpoにするな.
どうせならキーボードのスキャンコードとか使ってで完全に可逆に変換してpoperlとかでプログラム実行できるようにしてくれ.
ScanCode Set2は16進数だからうまいこと2進数(po)にできるはず.

できた。cs0の僕のホームに置いたよ
[po@cs0 ~]$ ./poperl
USAGE:
to transform perlscript to pofile:
./poperl -t [perlscript] >[pofilename]
to execute pofile
./poperl [pofilename]
[po@cs0 ~]$ cat hoge.pl
#!/usr/bin/perl

print "hello world!\n";
[po@cs0 ~]$ ./poperl -t hoge.pl
pooopppppoooppoppoopoppopoopoooppooopoppppopppppppopppoppoopoppppooppopopoopoopppoopoopppoopooooppoppppppooopooopoopoooopoooppoppoopoopppooppoppppoppppopopooopppoopooopppopppopppooopoo
[po@cs0 ~]$ ./poperl -t hoge.pl > po
[po@cs0 ~]$ ./poperl po
hello world!


ソースはこんな
#!/usr/bin/perl -w

use strict;

my $transform = 0;
unless (defined $ARGV[0]){
print "USAGE:
to transform perlscript to pofile:
./poperl -t [perlscript] [pofilename]
to execute pofilename
./poperl [pofilename]
";
exit
}
$transform = shift @ARGV if($ARGV[0] eq '-t');
my $filename = shift @ARGV;

if($transform){
open F, $filename;
my $file = undef;
map{chomp; next if (/^\=/); s/\#.*//g;$file .= $_} <F>;
close F;

my $length = (length $file) * 8;
my $ret = unpack "B$length", $file;
$ret =~ tr/[01]/[po]/;
print $ret;
exit;
}

open F, $filename;
my $file = undef;
map{$file .= $_} <F>;
close F;
my $length = (length $file);
$file =~ tr/[po]/[01]/;
my $ret = pack "B$length", $file;
eval $ret;

nharry npotter

コメントを投稿

Powered by
Movable Type 3.34