perl ./script.pl $(ls *.txt | sed 's/^/-file /')
This converts the call to:
perl ./script.pl -file myfile.txt -file yourfile.txt -file ourfile.txt
But this is ugly, isn't it?
Another solution is to do the expansion inside of the script:
#!/usr/bin/perl
use strict;
use warnings;
use Getopt::Long qw (GetOptions);
my (@Files);
Getopt::Long::Configure("no_ignore_case", "prefix_pattern=(--|-|\/)");
GetOptions ("file=s@" => \@Files);
my @globs = map {glob ($_)} @Files;
print "glob: $_\n" for @globs;
Now you can call the script like:
./script.pl -file "*.txt"
And get the expected output. The quotes in the call arount *.txt are needed to prevent the expansion in the shell prior to the actual call to the script.
HTH
citromatik
|