我在Windows 7机器上安装了ActivePerl。一切都很好,但它无法从给定路径读取配置文件。我使用的代码是ActivePerl在Windows 7中的路径不起作用
use constant CONFIG_FNAME => '/windows/system32/softwareconfig.txt';
$self->{"config"} = &read_config_file($CONFIG_FNAME);
warn "read_config_file(CONFIG_FNAME) returned undef" if !defined($self->{"config"});
它总是返回警告。如果我在同一个目录中使用softwareconfig.txt
并且使用CONFIG_FNAME => 'softwareconfig.txt'
,则它可以工作。
此代码在Windows上完美运行 XP。我也试过下面的路径,但似乎没有工作。这些都可以在XP中使用Windows 。
CONFIG_FNAME => 'c:/windows/system32/softwareconfig.txt'
CONFIG_FNAME => 'c:\\windows\system32\softwareconfig.txt'
CONFIG_FNAME => 'c:\\windows\\system32\\softwareconfig.txt'
CONFIG_FNAME => "c:\\windows\\system32\\softwareconfig.txt"
CONFIG_FNAME => '\\windows\\system32\\softwareconfig.txt'
可以做些什么来纠正?
可以肯定的是,不需要在路径上使用反斜杠。只需使用正斜杠即可。 Perl会自动替换它。并且不需要在单引号字符串中转义反斜杠 – 2015-04-06 08:26:49
双引号内的转义反斜杠。我输入了错误,并在原始问题中进行了更正。 – Prabhu 2015-04-06 09:32:36
@hexerei软件,Perl不会执行任何替换。 Windows本身接受'\'和'/'作为路径分隔符。 – ikegami 2015-04-06 13:51:02