Ошибка Perl Chdir - PullRequest
       14

Ошибка Perl Chdir

1 голос
/ 24 октября 2011

Я пытаюсь изменить рабочий каталог (для настройки администратора очередей WebShpere MQ) с помощью Perl в UNIX.

Мне нужно перейти в каталог /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, она работает нормально, и она приходит к выводу, что это будет ошибкой при использовании "\!" part.

Ответы [ 3 ]

2 голосов
/ 24 октября 2011

Строки в одинарных кавычках не интерполируют обратную косую черту, поэтому вы пытаетесь перейти в каталог с именем / var / mqm / qmgrs / Q \! MAN

Либо пропустите обратную косую черту, либо используйте строку в двойных кавычках.

2 голосов
/ 24 октября 2011

Вам не нужно экранировать ! в имени каталога. Это должно работать:

my $dir = '/var/mqm/qmgrs/Q!MAN';
chdir $dir or die "Can't cd to $dir: $!\n";
0 голосов
/ 24 октября 2011

У вас есть обратная косая черта в вашей переменной ... Я бы сказал, что вы делаете многое для спасения.

...