>>395
調べてみたんだが、ダブルクォート中にリスト変数を記述すると、リストの中身が
展開されるそうな。そのとき区切り文字として特殊変数 $" が使われるんだけど、
この中身はデフォルトでは半角スペース。

例えば、各行が「うんこ」「ウンコ」「unko」のテキストファイルを読み込む。

@data = <FILE>;

すると、$data[0] は「うんこ\n」、$data[1] は「ウンコ\n」 などとなる。

これを間違ってた方法で書き出すと

print FILE "@data\n";

リストが展開され、「うんこ\n ウンコ\n unko\n\n」となる。

結果、2行目以降の先頭にスペースがついてしまったというわけ。
(@dataの後ろの\nが実は末尾にしか付いていないことにも注目)
リストの出力は print FILE @data; のようにダブルクォートせずに書こう。