>>336さん すみませんやっていなかったのでやってみました。 truncate(test1または$_,tell(test1または$_)) or die("$!"); foreachでやっていない方は問題なく出来たのですが foreachを使っている方は"No such file or directory"と表示されました。 しかし相変わらずなぜ前者のは出来て、後者は出来ないのかわかりません。 seekについて指摘されたのでそれも消してやってみたのですが(seek自体には問題ないと思いますが) やはり結果は変わりませんでした。