read(FH, $buff, (-s FH));
これじゃなにか不具合でも?