Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"

Re: How do I stop this from removing spaces?

by chuckbutler (Monsignor)
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

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (4)
As of 2022-08-18 01:10 GMT
Find Nodes?
    Voting Booth?

    No recent polls found