спецсимволы в perl под linux (разобрался)

vbgt99912

Вопрос такой:
Есть файлы и программа их обрабатывающая. Также есть скрипт, вызывающий эту обработку
Под windows это работает
 @list = glob "./test/*.txt";
my $i;
my $name,$res;
for ($i=0;$i<@list;$i++){
@list[$i] =~ /\.\/test\/(.*)\.txt/;
$name = $1;
$res = `parser.exe @list[$i]`;
}

Под linux этот код (разве что только без "parser.exe" -> "./parser") - нет. Конкретней $res получается пустой.
После экпериментов я пришел к выводу, что дело в том, что в именах аргуменов встречается "$". Иначе все работает.
 
 print "./parser @list[$i]"  

выводит нужную строчку, которая из командной строки делает, что надо.
Кто знает, как заставить это работать (не переименовывая файлы)?

Marinavo_0507

всё работает
возможно, программа пишет не в stdout, а ещё куда-то

vbgt99912

все ок
для вызова файла "abc$def" нужно из строки "abc\$def", а из перла `abc\\\$def`

Geddi-S

@list[$i]
нифига себе...
сейчас проверил - такая конструкция работает ) блин, а я всегда писал $list[$i]...
Оставить комментарий
Имя или ник:
Комментарий: