バイナリファイル内から、特定の数バイトが存在する場所を
探すプログラムを書いているんですが、最終的な検索がうまく
いきません。

ファイルをopenして、一定の長さのデータを読み込んでから、
unpack()で16進文字列(?)に変換して、index()で検索している
のですが、テスト用のデータで確かに検索対象の16進文字列
があるはずなのに、index()の戻り値が-1になってしまいます。

my $seach = "ffffffffff";
read(IN,$buf,$size);
my $data = unpack("H*",$buf);
my $pos = index($data,$search);

みたいな感じで、$data内には"ffffffffff"が見えるのですが、
$pos=-1で戻されてしまいます。

unpackで変換した$dataは文字列として解釈されてないので
しょうか?