Subscribed unsubscribe Subscribe Subscribe

Quine ruBy Perl版

Quine ruBy - まめめも
僕みたいなruby素人には何やっているのかよくわからない ><
のでperl版を作ってみた。

     eval                                       (($q
     ||=q{1;                                 $b=qq{$
      q\x7d))}.                           join(chr(
      2  +30)x11,(     ";","BEGIN"     .'{$^H|='  .
       (  "0x800000"),q"}eval$b"));$b=~s/\e\[.*  ?
       m    //xg;for(28,5,45,5,53,58,86,30,1,    (
        ( 43)),58,86,30,1,53,58,31,2,43,58,31,2 ,
        55,5,45,5){$~=(0,"48;5;9","48;5;1","48;5"
        .";15")[$_/28];substr($b,517+$i+($_%28),0
       ,() ."\e[$~m");$i+=length($~)+3+($_%28) };(
      $n= ($q+1)%2);$b=~s/./$n/;($qb='M("`@("`@ Y8.
     5XX& HY:61     Y[2$XX&7XX&F4&5R;     $UO;F =E<N
    .!J^ .!JN.    !H ^.!MIN:LLN.!E^.    !A .."D^ .!H"
   P@("` @("`@       ("`@("`@("#ED)O       C@9_C @:\'C
   @:_CM @83C@:     3C@H+C@9WC@8;C@:#     C@:T*5 $U43U
  =41$GC @:CC@83C@:/C@:;ECZ_HMJJWF@*?C@:[DO8[C@8 3C@K/C
  @[SC@X GC@I+FF[CC@8\NZ*BSXX&,Y8B&XX&+,XX*)XX&J XX&$XX
 *(')=~s/ \x20|\x0a|\e.*  ?   m  //xg;print((q[ ]x5)."e"
 ."val".   ("\x20"x39).('   q   '?"":q{b}x999)   .q'(($q
'.($"x5)    .q{||=q}."\x7b"."$b".('`%'^'[/').    "\x0a".
(split+(       /\x2c/,unpack+q"u",$qb))[$n       ]."\n");
exit}));           BEGIN{$^H|=0x800000           }eval$b;

https://gist.github.com/920047
あんまりカッコ良くないけど一応ほぼ同じ手法でquineさせてるはず。色いじるところはちょっとオリジナルでアレンジ。

$ perl qb.pl
$ perl qb.pl | perl
$ perl qb.pl | perl | perl

台詞が思い浮かばなかったのと能力不足で2パターンまでしか作れなかった…