ファイルを開けてる時点でパスは分ってるもんじゃないのか?
use Cwd qw(abs_file);
それとも↑レベルの話?