2015-11-01 82 views
-4

Perl的命名空間魔法總是最令人沮喪的....Perl的抱怨,即使包%INC

有一個腳本,依賴於Recipient.pm,以及Donation.pm

use lib '../BulkLoad'; 
use Recipient; 
use Donation; 

Recipient.pm是一個面向對象的類,它本身使用Donation.pm(只是一組函數)。有點遞歸/多餘,我知道。

my $city = Donation::getCity($dbh, $cityName, $stateName); 

Perl的抱怨:

Undefined subroutine &Donation::getCity called at ... 

「很高興有」

我的腳本 - - 而這又依賴於兩個每當它試圖無償使用子從Donation.pm失敗,「最佳實踐」重構超出範圍:)

預先感謝您!

回答

2

由於您沒有提供捐贈來源,所以只能猜測。這可能是

  • 該函數的名稱不同
  • ,你忘了Donation.pm
  • 也許別的東西(顯示代碼)
+0

申報包裹「捐贈」或者可能會丟失一個返回真值的語句作爲包文件中的最後一條語句。 – mwp

+2

@mwp:我懷疑它,因爲它應該已經抱怨'使用...'失敗,即嘗試函數調用之前。 –

+0

啊,對。好決定。 – mwp