Как я могу обрабатывать подстановочные знаки в командной строке с помощью Perl в Windows?

Хотя это было бы просто, но, видимо, я не могу:

script.pl *.ext

в командном процессоре WinXP.

Есть встроенное решение? (т.е. не модуль CPAN?)


person chris    schedule 14.07.2009    source источник


Ответы (2)


File::DosGlob — это основной модуль:

#!/usr/bin/perl

use strict;
use warnings;

use File::DosGlob qw( glob );
print map { "$_\n"} map { glob } @ARGV;
__END__
    C:\Temp> tgh *.pl
    ...
    tgh.pl
    tgm.pl
    thg.pl
    thk.pl
    tjl.pl
    tjm.pl
    tkj.pl
    tkl.pl
person Sinan Ünür    schedule 14.07.2009
comment
FWIW, File::Glob и встроенная функция glob являются синонимами, начиная с Perl 5.6. - person spoulson; 14.07.2009
comment
Я имел в виду File::DosGlob... извините. - person Sinan Ünür; 14.07.2009

Используйте функцию glob.

... возвращает (возможно, пустой) список расширений имен файлов для значения EXPR, например, стандартная оболочка Unix /bin/csh...

person spoulson    schedule 14.07.2009
comment
Но только используйте его в Windows. Если вы используете его в Unix, вы рискуете подставить настоящие имена файлов; звездочки и вопросительные знаки являются допустимыми символами в именах файлов Unix. - person Rob Kennedy; 14.07.2009