openの第一引数に変数を与えた場合の挙動はたびたび変更されてるから、
perlfuncの古いの引っ張ってきて読んどくといいよ。