Я исполняющего мой сценарий так:Perl открыть файл из командной строки с помощью шаблона
./script.pl -f files*
Я смотрел на некоторых других потоков (например, How can I open a file in Perl using a wildcard in the directory name?)
Если я жесткий код имя файла, как он есть написанный в этой теме, я получаю желаемый результат. Если я беру его из командной строки, это не так.
Моя подпрограмма должна сохранять все файлы, которые я получаю в массиве.
my @file;
sub Options{
my $i=0;
foreach my $opt (@ARGV){
switch ($opt){
case "-f" {
$i++;
### This part does not work:
@file= glob $ARGV[$i];
print Dumper("$ARGV[$i]"); #$VAR1 = 'files';
print Dumper(@file); #$VAR1 = 'files';
}
}
$i++;
}
}
Кажется, что выполнение интерпретируется заранее, и шаблон шаблона (*) отбрасывается в процессе.
0 Желаемый результат: Все файлы, начинающиеся с , хранятся в массиве, после выполнения команды из командной строки.
Надеюсь, вы получите мою проблему. Если не стесняйтесь спрашивать.
спасибо.
lol, это было довольно просто. Но есть ли способ сделать это без "или" Таким образом, можно автоматически заполнить имена файлов с помощью табуляции? – Ueffes
Да - проблема в том, что в этом случае оболочка расширяет шаблон. Не давайте ему «шаблон оболочки», (Например, если вы заполните вкладку), и все будет хорошо. – Sobrique
meh ok. Спасибо, хотя =) – Ueffes