gpt4 book ai didi

避免重新定义已定义函数的 Perl 库

转载 作者:行者123 更新时间:2023-12-01 11:56:08 26 4
gpt4 key购买 nike

我有两个 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com