Kısa bir süre önce süreç adı/kullanıcı adına dayalı işlemleri sonlandırmak için yeni bir Perl komut dosyası yazdım ve diğer programlarda işlem kodunu yeniden kullanabilmem için Classes kullanarak genişlettim. Benim şu anki düzenidir - Perl betiğimin modülü aynı dizinde nasıl bulunur?
/home/mutew/src/prod/pskill <-- Perl script
/home/mutew/src/prod/Process.pm <-- Package to handle process descriptions
ben her yerden senaryoyu erişmek için benim $ PATH değişkeninde ~/src/eşya eklendi. Komut dosyası, yerleşik dizini dışındaki herhangi bir dizinden çalıştırılınca, "@Chinde Process.pm'yi bulamıyor" (/ usr, @INC içindeki paylaşılan dizinler dışında yalnızca geçerli dizini içerdiğinden anlaşılabilir) ''). Ben kullanıyorum bir geçici çözüm olarak bu yüzden kullanımı lib yönergesidir -
use lib '/home/mutew/src/prod';
ama bu büyük taşınabilirlik konudur. Ayrıca, betiği diğer sistemlere aktarmadan değiştirip değiştirmemize izin verecek herhangi bir çözüm var mı?
DÜZENLEME nedeniyle basitliği ve çekirdek modülü kullanım doğru olarak 'depesz' cevabını tercih
- .
- brian d foy'un yanıtı, aynı (TMTOWTDI) başarmak için başka yöntemler önermektedir, perlfaq8'deki katkısı bu soruyu kesinlikle gereksiz kılar.
belki de benim kurulumumdur, ancak her iki dosya aynı dizinde bulunuyorsa sadece "FILENAME.pm kullanın". Sonra "$ newVar = PACKAGENAME-> new();" herhangi bir nesne programlaması için. –
Vay bu Perl'den bundan daha kolay olmalı! Kolay şeyleri daha kolay hale getirin. –