Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re: left side of pattern matching

by furry_marmot (Pilgrim)
on Mar 13, 2012 at 20:13 UTC ( #959443=note: print w/replies, xml ) Need Help??


in reply to left side of pattern matching

They are "converted" (interpolated, actually), but you are matching apples to apples, so it doesn't matter. First, the backslash is simply a representation of an "invisible" character. It's not as simple as "removing the backslash".

Context is also very important. In a double-quote interpolated string, a pipe '|' is just a pipe. But in a regex, it takes on the meaning of OR in a match. Here's the string you created, translated a bit:
$hello = "^<newline><space><pipe><tab><carriage return>$"
I think this is exactly what you expected. Then you set up a match, wherein you ask:
Does $hello contain one or more of [<space><pipe><tab><carriage return><newline>], which start at the beginning of the string, and end at the end of +the string (this is called anchoring, by the way)?

And yes it does, as noted above. I'm not sure why you would think it wouldn't match. Regexes are interpolated similarly to quoted strings, but there are additional meanings within a regex that also have to be considered.

Instead of worrying about passes of interpretation or whatever, just think about what each special character means in the context in which you are using it.

--marmot

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://959443]
help
Chatterbox?
[Corion]: Meh. I'm now on Firefox 57 ("Quantum") and again have to remove Pocket, and reinstall the adblocker, uMatrix (because NoScript doesn't work) and silence the about:blank page to not download crap from the internet
[Corion]: Maybe I shouldn't update software ...
[ambrus]: Corion: my guess is to first read the start of the file to check what format it is out of two or more possibilities, then rewind it and handle it differently depending on the program
[ambrus]: s/program/format/
[Dumu]: ambrus: it's about testing a file for being multiple possible file formats
[ambrus]: In particular, you might want to detect the encoding of a HTML file from between utf-16 versus ascii-based and encoding given in a META tag.
[ambrus]: Dumu: it should probably be safe to change the encoding if you rewind first with seek $file, 0, 0 first
[Dumu]: ambrus: good guess. I'm trying to contribute to a CPAN module, and the existing tests assume they're looking at text files
[Dumu]: ambrus: thank you. I was seeking afterwards. I'll seek first.
[jedikaiti]: Hello, Dumu!

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (12)
As of 2017-11-20 17:53 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    In order to be able to say "I know Perl", you must have:













    Results (291 votes). Check out past polls.

    Notices?