1

我正在尝试在 UNIX 中使用 Perl 更改工作目录(用于配置 WebShpere MQ 队列管理器)。

我必须去目录/var/mqm/qmgrs/Q\!MAN,我使用了以下代码片段:

$QueueManagerPathName = 'Q\!MAN';
chdir('/var/mqm/qmgrs/'.$QueueManagerPathName) or die "Cannot change to dir : /var/mqm/qmgrs/".$QueueManagerPathName."\n";

但它不会改变目录并且死给

Cannot change to dir : /var/mqm/qmgrs/Q\!MAN

当我删除变量时,它的工作正常,它得出的结论是,使用部分$QueueManagerPathName会出错。"\!"

4

3 回答 3

2

单引号字符串不插入反斜杠,因此您尝试更改为名为 /var/mqm/qmgrs/Q\!MAN 的目录

要么省略反斜杠,要么使用双引号字符串。

于 2011-10-24T12:12:06.583 回答
2

您不需要!在目录名称中转义。这应该有效:

my $dir = '/var/mqm/qmgrs/Q!MAN';
chdir $dir or die "Can't cd to $dir: $!\n";
于 2011-10-24T12:16:13.243 回答
0

你的变量中有一个反斜杠......我会说你正在做很多转义。

于 2011-10-24T12:10:58.947 回答