Perl 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
工作正常,我得出的结论是使用 "\!"
部分会出错。
I am trying to change the working directory (for configure a WebShpere MQ Queue manager) using Perl in UNIX.
I have to go to the directory /var/mqm/qmgrs/Q\!MAN
and I have used following code snippet:
$QueueManagerPathName = 'Q\!MAN';
chdir('/var/mqm/qmgrs/'.$QueueManagerPathName) or die "Cannot change to dir : /var/mqm/qmgrs/".$QueueManagerPathName."\n";
But it does not change the directory and dies giving
Cannot change to dir : /var/mqm/qmgrs/Q\!MAN
When i remove the variable $QueueManagerPathName
its working fine and it concludes me that it would be error using "\!"
part.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您不需要在目录名称中转义
!
。这应该有效:You don't need to escape
!
in the directory name. This should work:单引号字符串不会插入反斜杠,因此您尝试更改为名为 /var/mqm/qmgrs/Q\!MAN 的目录,
或者省略反斜杠,或者使用双引号字符串。
Single quoted strings do not interpolate backslash, so you're trying to change to a directory called /var/mqm/qmgrs/Q\!MAN
Either omit the backslash, or use a double-quoted string.
你的变量中有一个反斜杠......我想说你正在做太多转义。
You have a backslash in your variable... I'd say that you are doing to much escaping.