Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re: How do I stop this from removing spaces?

by chuckbutler (Priest)
on Jun 25, 2010 at 01:58 UTC ( #846436=note: print w/ replies, xml ) Need Help??


in reply to How do I stop this from removing spaces?

There is an implicit join of the list being done when the regular expression is being compiled. This is using the $", dollar-double-quote, variable as the separator character, which defaults to a space. So, the character class that is used in the substitution contains a space, and therefor spaces are removed. Better for oneself to do the join:

use strict; use warnings; use re 'debug'; # shows whats-what my $id='TEST TEST'; print "$id\n"; my @filename_filter=('*','|','<','>','?','/'); my $filename_filter_joined = join '',@filename_filter; #empty separator character $id =~ s/[$filename_filter_joined]//g; print "$id\n"; __END__ ~~Output~~ TEST TEST Compiling REx "[*|<>?/]" Final program: 1: ANYOF[*/<>?|][] (12) 12: END (0) stclass ANYOF[*/<>?|][] minlen 1 Matching REx "[*|<>?/]" against "TEST TEST" Matching stclass ANYOF[*/<>?|][] against "TEST TEST" (9 chars) Contradicts stclass... [regexec_flags] Match failed TEST TEST Freeing REx: "[*|<>?/]"

Good luck. -c


Comment on Re: How do I stop this from removing spaces?
Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (8)
As of 2014-08-28 04:08 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (256 votes), past polls