http://www.perlmonks.org?node_id=1061566


in reply to perl glob

Normally this globbing would be handled by the shell, so your two commands would be

perl wrapper.pl *.ws
and
perl wrapper.pl test_*.ws
Leaving your script to work its way through @ARGV and process files.

To make it even simpler, you could just replace wrapper.pl with converter.pl, unless the wrapper script is doing something that you haven't shown here.

Alex / talexb / Toronto

Thanks PJ. We owe you so much. Groklaw -- RIP -- 2003 to 2013.

Replies are listed 'Best First'.
Re^2: perl glob
by Anonymous Monk on Nov 07, 2013 at 14:28 UTC

    Sorry for my poor english...

    The converter.pl is an other long programm which I have wrote for converting scripts in one programming language to the scripts in an other. But with converter.pl I can only convert one file in one go. E.g.:

    perl converter.pl abc.ws

    It will create a new script names abc.is. So I wrote this simple wrapper, to allow me converting several ws files in one go. E.g.:

    perl wrapper.pl .ws

    For instance, it converts abc.ws, efg.ws and hij.ws in one go, which I can't achieve with:

    perl converter.pl .ws.

    P.S.

    perl converter.pl *.ws

    also didn't work, probably because I also allowed users to define the output filename by themselves, e.g.:

    perl converter.pl abc.ws efg.is

    And here is the relevant codes in converter.pl:

    my $file_name = ""; if (scalar(@ARGV) == 2){ $file_name .= $ARGV[1]; } else { $ARGV[0] =~ s/(.+)\.\S+/$1/; $file_name .= $ARGV[0]; $file_name .= ".is"; }

    I checked here whether the user defined a name for the "is" file, if not the "is" file will take the same name with the "ws" file.

    Many thanks!