Because "foo\n" =~ /foo$/, I tend to explain it differently. ^ and $ are begin and end of a line, but /m modifies the meaning of "line".
I don't see how that explanation can work, though. $ only ever means EOL when /m is operative. You can see that by running:
"foo\nbar" =~ /foo$/ or print "Didn't match EOL :-(\n";
I see that you've updated the sheet to just:
^ begin
$ end (before \n)
Can I suggest that (if you also used the suggestion at the end of this node) that could just become:
^ start of str
$ end of str (incl \n)
Those descriptions would be sufficient if you were also more explicit about
/s and
/m. Explaining that they mean
singleline and
multiline respectively doesn't really help newbies remember which is which or what each of them does. Heck, if
uri hadn't taught me the mnemonic that
/s changes a
Single metacharacter (i.e.
.) whilst
/m changes
Multiple metacharacters (i.e.
^ and
$), then I still wouldn't be able to remember which is which myself!
So maybe you'd like to consider changing them to something like:
/m ^ = SOL, $ = EOL
/s . matches \n too
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.