Ошибка Perl Chdir
Я пытаюсь изменить рабочий каталог (для настройки администратора очередей 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
он работает нормально, и он приходит к выводу, что это будет ошибка при использовании "\!"
часть.
3 ответа
Вам не нужно убегать !
в имени каталога. Это должно работать:
my $dir = '/var/mqm/qmgrs/Q!MAN';
chdir $dir or die "Can't cd to $dir: $!\n";
Строки в одинарных кавычках не интерполируют обратную косую черту, поэтому вы пытаетесь перейти в каталог с именем /var/mqm/qmgrs/Q\!MAN
Либо пропустите обратную косую черту, либо используйте строку в двойных кавычках.
У вас есть обратная косая черта в вашей переменной... Я бы сказал, что вы делаете многое для побега.