Perl chdir错误

时间:2011-10-24 12:03:57

标签: perl unix chdir

我正在尝试在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时,它的工作正常,并且我认为使用"\!"部分会出错。

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:2)

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

my $dir = '/var/mqm/qmgrs/Q!MAN';
chdir $dir or die "Can't cd to $dir: $!\n";

答案 2 :(得分:0)

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