【发布时间】:2011-08-18 21:50:57
【问题描述】:
我有两个 perl 模块文件,例如:
is_date_holiday.pl:
use strict;
use warnings;
sub IsDateHoliday
{
...
}
1
calc_prev_working_date_mult.pl:
use strict;
use warnings;
require "is_date_holiday.pl"; # IsDateHoliday
sub CalcPrevWorkingDateMult
{
...
}
1
在 perl 文件中同时使用它们,例如:
require "is_date_holiday.pl"; # IsDateHoliday
require "calc_prev_working_date_mult.pl" # CalcPrevWorkingDateMult
它抱怨我正在重新定义函数 IsDateHoliday
如何做相当于 #ifndef 的?
【问题讨论】:
-
你拥有的不是模块!
-
%INC机制(参见perldoc -f require)已经采取措施阻止文件被加载两次。您发布的代码与实际运行的代码相同吗?你确定你没有在一个地方做类似require "file.pl"而在另一个地方做require "./file.pl"的事情吗?require "File.pl"和require "file.pl"在不区分大小写的系统上?或者&IsDateHoliday没有在其他地方定义? -
@mob,我注意到这个解释有些可疑,但无论如何解决方法都是一样的。