Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re^2: Using wildcards to open files.

by starface245 (Novice)
on Oct 25, 2012 at 18:34 UTC ( #1000916=note: print w/ replies, xml ) Need Help??


in reply to Re: Using wildcards to open files.
in thread Using wildcards to open files.

Your code works for me, how do I escape with filenames that has spaces and special characters? such as "A_name sub.msg"


Comment on Re^2: Using wildcards to open files.
Replies are listed 'Best First'.
Re^3: Using wildcards to open files.
by kennethk (Abbot) on Oct 25, 2012 at 19:04 UTC

    As aitap said above, quotemeta will do that, a la my $escaped  = quotemeta($file); or even $cmd = "perl script.pl < \Q$file\E";


    #11929 First ask yourself `How would I do this without a computer?' Then have the computer do it the same way.

      Both methods doesn't seem to work. It not escaping the space correctly. It doing "A_name\"

        Where's your code? Where's your input? Where's your output? A vague statement that it didn't work correctly is entirely inadequate. Please read How do I post a question effectively?.

        Both methods provided by kennethk work just fine!

        $ mv a.msg 'XYZ @ % a.msg' $ cat 'XYZ @ % a.msg' Message A $ cat script.pl print while (<>) $ perl -e ' use strict; use warnings; my @files = glob("*.msg"); for my $file (@files) { print "Filename: $file\n"; my $cmd = "perl script.pl < \Q$file\E"; system($cmd); } ' Filename: b.msg Message B Filename: c.msg Message C Filename: XYZ @ % a.msg Message A $ perl -e ' use strict; use warnings; my @files = glob("*.msg"); for my $file (@files) { print "Filename: $file\n"; my $escaped = quotemeta $file; my $cmd = "perl script.pl < $escaped"; system($cmd); } ' Filename: b.msg Message B Filename: c.msg Message C Filename: XYZ @ % a.msg Message A

        Also, my original suggestion of using one process instead of thousands still works without modification:

        $ ls -l *.msg -rw-r--r-- 1 ken staff 10 26 Oct 03:01 XYZ @ % a.msg -rw-r--r-- 1 ken staff 10 26 Oct 03:01 b.msg -rw-r--r-- 1 ken staff 10 26 Oct 03:02 c.msg $ perl script.pl *.msg Message A Message B Message C

        -- Ken

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1000916]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (15)
As of 2015-09-02 14:57 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My preferred temperature scale is:










    Results (84 votes), past polls