揮発性のメモ2

http://d.hatena.ne.jp/iww/

n文字ずつ区切る

標準入力から16進アスキーを 2文字ずつで区切って 標準出力にバイナリで出力する

#!/usr/bin/perl

binmode STDOUT;
while(<>){
    s/[^0-9a-fA-F]//g;
    foreach $a ( /../g ) {
       print chr(hex($a));
    }
}

別にbinmode指定しなくてもよかった。というか効いてなさそう。
配列にしていじらなくてもpackで一発だった。
英数字以外の削除にtr使えるかと思ったけど、tr使うと長くなるのでやめた。というかホワイトスペースを消すだけにした。

#!/usr/bin/perl

while(<>){
    s/\s//g;
    print pack "H*",$_;
}

1行にすると

perl -pe 's/\s//g;$_=pack"H*",$_'

になった。


n文字分割とかどうでもよくなった