Perl:How File::Spec->;佳能路径($path)有效

Perl:How File::Spec->;佳能路径($path)有效,perl,Perl,这个方法在做什么 我只是不明白它的目的,perldoc中的解释对我没有帮助 现在,我需要更新一个使用此方法的脚本,以便更好地了解它在做什么 有没有简单的教程来理解这个方法 谢谢curdir返回当前工作目录的符号canonpath在不同的操作系统上执行不同的操作,例如检查或 。这意味着它会 将所有路径分隔符更改为常规路径分隔符字符 将多路径分隔符压缩为单个路径分隔符 移除拖尾路径分隔符 删除任何多余的和。路径元素 这最好用Windows路径来演示,如 C:/a/b/../c///d/.//

这个方法在做什么

我只是不明白它的目的,perldoc中的解释对我没有帮助

现在,我需要更新一个使用此方法的脚本,以便更好地了解它在做什么

有没有简单的教程来理解这个方法


谢谢

curdir
返回当前工作目录的符号<代码>canonpath在不同的操作系统上执行不同的操作,例如检查或
。这意味着它会

  • 将所有路径分隔符更改为常规路径分隔符字符

  • 将多路径分隔符压缩为单个路径分隔符

  • 移除拖尾路径分隔符

  • 删除任何多余的
    路径元素

这最好用Windows路径来演示,如

C:/a/b/../c///d/.//
这是一段Perl代码

use strict;
use warnings;
use feature 'say';

use File::Spec;

say File::Spec->canonpath('C:/a/b/../c///d/.//');
输出 很遗憾,我无法解释您显示的代码

my $dir  = File::Spec->curdir();
my $path = File::Spec->canonpath($dir);
因为在Windows和Linux系统上,
curdir
方法返回
,而
canopath
保持不变。如果您想发现当前目录的绝对路径,那么可以使用

my $path = File::Spec->rel2abs(File::Spec->curdir());
但是,使用这样的模块更好

use Cwd ();

my $path = Cwd::cwd;

我正在努力理解脚本在做什么。然后我需要修改/扩展脚本。脚本的作用是:1.)my$dir=File::Spec->curdir();2.)my$path=File::Spec->canonpath($dir);我只是不明白这些步骤。我试过了,但仍然没有达到目的。my$dir=File::Spec->curdir();my$path=File::Spec->canonpath($dir);打印“$dir\n”;打印“$path\n”;两张照片上都有点。@paperazzo79:是的,因为
没有连续的斜杠、双点或三点,所以上面的
canonpath
是不允许的。
use Cwd ();

my $path = Cwd::cwd;