正如标题所述,尝试使用我的perl模块时出现此错误,但是我不知道这意味着什么,而且我似乎在互联网上找不到任何明确的结果。我的代码包含3个文件:一个使用模块(MyLib.pm)的脚本(myApp.pl),该模块又使用另一个模块(Secret.pm)。这里是它们的全部:
myApp.pl
const myAppReq = http.request(options, (myAppRes) =>{
myAppRes.on('data', (chunk) => {
res.write(chunk);
});
myAppRes.on('end', () => {
res.end();
});
});
MyLib.pm
#!/path/to/perl
my $version = "1.0.0";
use warnings;
use strict;
use Testing::MyLib;
Secret.pm
package Testing::MyLib;
use strict;
use warnings;
use Testing::Secret;
它们退出此文件结构:
package Testing::Secret;
use strict;
use warnings;
use Exporter qw( import );
our @EXPORT = ();
our %EXPORT_TAGS = (
'all' => [ qw( MY_CONSTANT )]
);
our @EXPORT_OK = (
@{ $EXPORT_TAGS{all}}
);
use constant MY_CONSTANT => 'bla bla bla';
错误消息的详细信息是:
/bin/myApp.pl
/lib/perl/Testing/MyLib.pm
/lib/perl/Testing/Secret.pm
答案 0 :(得分:6)
<link href="https://unpkg.com/leaflet@1.3.4/dist/leaflet.css" rel="stylesheet" />
<script src="https://unpkg.com/leaflet@1.3.4/dist/leaflet.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://unpkg.com/leaflet.gridlayer.googlemutant@latest/Leaflet.GoogleMutant.js"></script>
<div class="map-container" id="mapid"></div>
<ul class="plot">
<li class="markers" data-lattitude="-40.99497" data-longitude="174.50808">Text 1</li>
<li class="markers" data-lattitude="-41.30269" data-longitude="173.63696">Text 2</li>
<li class="markers" data-lattitude="-41.49413" data-longitude="173.5421">Text 3</li>
<li class="markers" data-lattitude="-40.98585" data-longitude="174.50659">Text 4</li>
<li class="markers" data-lattitude="-40.93163" data-longitude="173.81726">Text 5</li>
</ul>
requests,Exporter在模块的命名空间中导出(创建)use Exporter qw( import );
。这是处理从模块中导出请求的方法。早于5.57的Exporter版本无法识别此请求,从而导致您收到错误消息。
自从Perl 5.8.3以来,Exporter 5.57或更高版本已与Perl捆绑在一起,因此您必须具有相当古老的Perl版本和模块!
您可以升级Exporter,也可以从Exporter继承import
,这虽然有点麻烦,但可以与任何版本的Exporter一起使用。
import