Kısa bir arka plan:
Ne yazık ki Unix API, çalıştırılabilir programın tam yolunu içeren çalışan bir program sağlamaz. Aslında, kendi programınızı yürüten program, normalde programınıza ne olduğunu söyleyen alanda istediği her şeyi sağlayabilir. Tüm cevapların işaret ettiği gibi, olası adayları bulmak için çeşitli sezgisel tarama vardır. Ancak, tüm dosya sistemini aramaktan hiçbir şey her zaman işe yaramaz ve yürütülebilir dosya taşındığında veya kaldırıldığında bile başarısız olur.
Ancak Perl çalıştırılabilir olmasını istemiyorsunuz, ki bu gerçekten çalışıyor, ama çalıştırdığı komut dosyası. Perl'in senaryoyu nerede bulacağını bilmesi gerekiyor. Bu in depolar __FILE__
iken, $0
Unix API değil. Bu hala göreceli bir yol olabilir, bu yüzden Mark'ın önerisini alın veFile::Spec->rel2abs( __FILE__ );