我有两个 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 的操作?
最佳答案
你实际上没有modules ,但你应该这样做。
IsDateHoliday.pm
:
package IsDateHoliday;
use strict;
use warnings;
use Exporter qw( import );
our @EXPORT_OK = qw( IsDateHoliday );
our %EXPORT_TAGS = ( all => \@EXPORT_OK );
sub IsDateHoliday
{
...
}
1;
CalcPrevWorkingDateMult.pm
:
package CalcPrevWorkingDateMult;
use strict;
use warnings;
use Exporter qw( import );
our @EXPORT_OK = qw( CalcPrevWorkingDateMult );
our %EXPORT_TAGS = ( all => \@EXPORT_OK );
use IsDateHoliday qw( :all );
sub CalcPrevWorkingDateMult
{
...
}
1;
main.pl
:
use IsDateHoliday qw( :all );
use CalcPrevWorkingDateMult qw( :all );
关于避免重新定义已定义函数的 Perl 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7114569/