研究室のロゴをPolyglotなQuineにしてみた

Quineだけじゃ物足りないので、Polyglotにしてみた。
さっきのプログラムと一緒でperlで処理すると自分自身を再生成。rubyで実行すると僕の研究室の英語表記を表示してくれるという英語圏の人にも優しい親切設計になっています。

q=                        "a      bc    de      fghijk  ";  eval(%w|pu
ts("Knowle                dg      e@    Sy  st          em          @L
ab  or      atory".gsu  b(/@/,  32.chr  ))  |.  join);  ;;  %w!==~/^/m
    ;;      $z      =$          ';  $_  =q              {$  z=  ~s
/\s//gm;@a  =s      pl    it  (//,"q=$z==~/^/m  ;;\$z=\$';  \$  _=q{$_
    };      ".      '$                  _=
    ~s      /\      s/    /g    m;eval  #'  .c    hr(33)    );
$l='Al5254  1E      @E          h5  21  Ae  Ae              A@
15      64  4041E@b55A  e0Ag0A  @6521H  a61C@b  55AiA@b552  24      12
Cb      A@              65  Ae  01  Ag  A@          51      644465A@5A
g0      0A              e5E@5A  g44CbB  gA@@Da    FaKf              A@

aAd2266K  @aAd22Ai1AiA  @aAd221Ga5G@BcFa44CdA@            Ae
  22        Bb    Cb    Bd5A@14226  EdE@0122Ce  CfA@0122605G@0122Ae5Af
  A@        14    22    Ka                  K@  ';                  @b
  =s        pl    it    (/  ,/,'AaAa,Aa,Ab  ,A      A,Ca,Ac,Ea');f
or$i      (0..6){$l=~s  /$i/$b  [$i]/g  ;}$l=~        s/
([          a-    z]    )/'.    'x(ord    ($1)        *2      -1
92  )/ge;$  l=    ~s    /([A-Z])/'  *'x(ord($1        )*2-128)/g
e;  fo  r$  i(    sp    lit(//          ,$l)){            $o
="  \n  ";  $o    =c    hr(32)if('  .'  eq  $i      );$o=shift(@a)
if  ('  *'  eq    $i    );          pr      in            t$
o}  "dummy  du    mm    ydummydummydummydummyd  "};$_=~s/\s//gm;eval#!

参考にしたページの変態度と比べればまだまだですね。

参考
今年の年賀状ネタ http://d.hatena.ne.jp/rofi/20110110/1294598847
RubyうどんげQuine(とAA型Quineの作り方講座) http://d.hatena.ne.jp/mickey24/20100915/ruby_udonge_quine
polyglot 基礎の基礎 http://d.hatena.ne.jp/sugyan/20110306/1299418878