Heaven's Kitchen

○ PerlでHello World

そろそろ中間発表の準備で参ってきたので,現実逃避気味に日記でも書こうかと思いたちました。

こないだ研究室の開発合宿なるものに行ってきたのですが,そこで先輩に教えてもらったPerlのコード

''=~('"`_[[).[|`%,,/`[/[@$~)^##'^'
_$+)@@/^(@@@@@,@),@_#|^
')

これでHello Worldが出ます。これの仕組みは以下のような感じのようです。

eval('[[).[|`%,,/`[/[@$~)^'^'+)@@/^(@@@@@,@),@_#|');

例えばCで

main()
{
    int i;
    char *a = "\"`_[[).[|`%,,/`[/[@$~)^##";
    char *b = "\n_$+)@@/^(@@@@@,@),@_#|^\n";
    for (i=0;i<25;++i)
        putchar(a[i] ^ b[i]);
}

とかやってみると驚きの結果が。

べつにXORでなくてもいいので|や&で同じような

暗号がたくさんつくれるー,と思ったけど実装したら

後悔しそうなのでやめました。

Comment Thanks

ちょうど同じ日に

うちの研究室でも、同じネタで盛り上がりました(笑)

「Perlはすごい・・・動くことが(汗)」友人談ですが

ぱっと見、どう見ても・・・文字化けですよね(++)

(no subject)

あ,久々に見たらコメントがw

おひさしぶりやねー,元気してますか?

Perlは"暗号記述言語"に異論なしですなぁ。

<< 前の日記 "スマスマ"(2007-09-17)

>> 次の日記 "フーコ"(2007-09-29)

Valid XHTML 1.0! Valid CSS!