07/04/29 01:57:47
struct {
char len1;
char word1[len1];
char len2;
char word2[len1];
char len3;
char word3[len1];
}
みたいな構造の可変長のバイナリなデータがあるんですが、
これをperlで綺麗でかっこよく展開する方法ってないですか?
今は下のようなことをしてるのですが、なんか見辛いし汚いので…
$data = "\4ABCD\3EFG\7HIJKLMN";
($len1,$data) = unpack("Ca*",$data);
($word1,$data) = unpack("a${len1}a*",$data);
($len2,$data) = unpack("Ca*",$data);
($word2,$data) = unpack("a${len2}a*",$data);
($len3,$data) = unpack("Ca*",$data);
($word3,$data) = unpack("a${len3}a*",$data);
print "$word1\n$word2\n$word3\n";