Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re: Escaping multiple escape chars

by l.frankline (Hermit)
on Dec 10, 2005 at 04:45 UTC ( [id://515687]=note: print w/replies, xml ) Need Help??


in reply to Escaping multiple escape chars

If you are working in regular expressions, non-alphanumeric characters are recognised
only if they are preceded by a backslash (\) else it will be treated as:

• perl operators or
• popups an error or
• you will get undesired results.

Lets take a look at your problem.

\ (backslash is a non-alphanumeric character).

\\ (in regular expression, two backslashs are recognised as single backslash)

while trying the below segment...

$txt=~s/\\/\\\\/g;

\\\\ (FOUR backslashs becomes 2 backslashs)

therefore your results will be...

__\\U//__

For your desired output try the below one:

$txt = ' __\\U//__ '; $txt =~s/\\/\\\\\\\\/g; print $txt;

regards
Franklin

Don't put off till tomorrow, what you can do today.

Replies are listed 'Best First'.
Re^2: Escaping multiple escape chars
by JamesNC (Chaplain) on Dec 10, 2005 at 07:14 UTC
    1.frankline unfortunately, your substition gives an incorrect sub for the case \*/, which also appears in the ascii art because it produces an extra '\' where there should be only 1
    Here is the art btw:
    my $xmas = q% __,_,_,___) _______ + (--| | | (--/ ),_) ,_) + | | | _ ,_,_ | |_ ,_ ' , _|_,_,_, _ , + __| | | (/_| | (_| | | || |/_)_| | | |(_|/_)___, + ( |___, ,__| \____) |__, |__, + + | _...._ + \ _ / .::o:::::. + (\o/) .:::'''':o:. + --- / \ --- :o:_ _::: + >*< `:}_>()<_{:' + >0<@< @ `'//\\'` @ + >>>@<<* @ # // \\ # @ + >@>*<0<<< __#_#____/'____'\____#_#__ + >*>>@<<<@<< [__________________________ +] >@>>0<<<*<<@< |=_- .-/\ /\ /\ /\--. =_-| + >*>>0<<@<<<@<<< |-_= | \ \\ \\ \\ \ |-_=-| + >@>>*<<@<>*<<0<*< |_=-=| / // // // / |_=-_| + \*/ >0>>*<<@<>0><<*<@<< |=_- |`-'`-'`-'`-' |=_=-| + ___\\U//___ >*>>@><0<<*>>@><*<0<< | =_-| o o |_==_| + |\\ | | \\| >@>>0<*<<0>>@<<0<<<*<@< |=_- | ! ( ! |=-_=| + | \\| | _(UU)_ >((*))_>0><*<0><@<<<0<*< _|-,-=| ! ). ! |-_-=| +_ |\ \| || / //||.*.*.*.|>>@<<*<<@>><0<<@</=-((=_| ! __(:')__ ! |=_==_ +-\ |\\_|_|&&_// ||*.*.*.*|_\\db//__ (\_/)-=))-|/^\=^=^^=^=/^\| _=-_ +-_\ """"|'.'.'.|~~|.*.*.*| ____|_ =('.')=// ,------------. + jgs |'.'.'.| ^^^^^^|____|>>>>>>| ( ~~~ )/ (((((((()))))))) + ~~~~~~~~ '""""`------' `w---w` `------------' + %;
    I solved the problem by using the suggestion of moving the art into __DATA__ using $xmas = <DATA>; The follow on posts were because I think that this behavior is broken for the case of single versus double quoted strings, but thanks for trying.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others scrutinizing the Monastery: (3)
As of 2024-04-26 02:36 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found