我有一个脚本
#!/usr/bin/env perl
use strict;
use warnings FATAL => 'all';
use feature 'say';
use autodie ':default';
use mwe 'tmp';
tmp();
调用一个Perl模块mwe
use feature 'say';
package mwe;
use Cwd 'getcwd';
use Exporter qw(import);
our @EXPORT = qw(tmp);
sub tmp {
say 'written by ' . getcwd() . '/' . __FILE__;
}
1;
但是当我运行这个脚本时,文件名从模块中出现:
con@V:~/Scripts$ perl mwe.pl
written by /home/con/Scripts//home/con/perl5/perlbrew/perls/perl-5.34.0/lib/5.34.0/mwe.pm
我在编写模块方面还很新手,如果我的最小工作示例不好,请提出建议。
我的问题是:我知道可以将文件/home/con/Scripts/mwe.pl
作为参数传递给子例程tmp
,但是否有办法让像tmp
这样的子例程自动返回脚本文件名?
perl
,则此操作将失败,这是一个常见情况。 - ikegami