什么是';Cwd&x27;和';qw';用perl是什么意思?

什么是';Cwd&x27;和';qw';用perl是什么意思?,perl,Perl,在perl中,我们导入/使用模块,我们使用Cwd qw作为列表/数组的表示 但是,我在一些代码中看到它如下所述 use Cwd qw(realpath cwd); realpath( $0 ) =~ /(.+)\/[^\/]+$/; require "$1/some_file.pl" 这是什么意思?你能帮我理解一下吗?qw/STRING/是引号 qw(realpath-cwd) 相当于 split(“”,q(realpath-cwd)) 从而 'realpath','c

在perl中,我们导入/使用模块,我们
使用Cwd
qw
作为列表/数组的表示

但是,我在一些代码中看到它如下所述

use Cwd qw(realpath cwd);
realpath( $0 ) =~ /(.+)\/[^\/]+$/;
require "$1/some_file.pl"

这是什么意思?你能帮我理解一下吗?

qw/STRING/
是引号

qw(realpath-cwd)
相当于

split(“”,q(realpath-cwd))
从而

'realpath','cwd'
所以

使用cwdqw(realpath-Cwd);
相当于

使用Cwd'realpath',Cwd';

根据,

使用模块列表;
相当于

开始{
需要模块;
模块->导入(列表);
}
所以

使用Cwd'realpath',Cwd';
相当于

开始{
需要Cwd;
Cwd->import('realpath','Cwd');
}

那么,
import
做什么呢?这完全取决于模块。模块通常会将列出的符号导出到调用方的命名空间中。Cwd也不例外

因此,下面加载Cwd(如果还没有),并从中导入函数
realpath
Cwd

使用cwdqw(realpath-Cwd);

最后,

$0
,记录在中,是正在执行的脚本的名称

realpath($0)
是正在执行的脚本的绝对路径,已解析符号链接

正则表达式匹配用于提取最后一个
/
之前的所有内容,即脚本所在的目录名

最后,执行指定的文件。(尽管
require
不是此项的最佳选择。)

代码的更简单版本:

使用FindBin qw($RealBin);
需要(“$RealBin/some_file.pl”);

是一个很好的起点
使用模块列表
加载模块并将列表中给出的符号导入到当前包中。因此
use-Cwd'getcwd'
getcwd
导入到当前包中。如果只使用Cwd
,则符号
getcwd
将无法直接使用,您需要编写
Cwd::getcwd()
来调用该函数