Random_Walk has given a good explanation. However, maybe the following line could help clear the that line a bit.
print $1,$/ if m{\s+?(\d+?)\/total$}; The above line shows clearly that after "total", what you have is "$" that indicate the end of the string and not "$/". The / that follows "$" is the second "slash" of the match operator i.e
m//
^ This one
In addition to all that, using the module "YAPE::Regex::Explain" the regular expression matches could be explain as thus:
The regular expression:
(?-imsx:\s+?(\d+?)/total$)
matches as follows:
NODE EXPLANATION
----------------------------------------------------------------------
(?-imsx: group, but do not capture (case-sensitive)
(with ^ and $ matching normally) (with . not
matching \n) (matching whitespace and #
normally):
----------------------------------------------------------------------
\s+? whitespace (\n, \r, \t, \f, and " ") (1 or
more times (matching the least amount
possible))
----------------------------------------------------------------------
( group and capture to \1:
----------------------------------------------------------------------
\d+? digits (0-9) (1 or more times (matching
the least amount possible))
----------------------------------------------------------------------
) end of \1
----------------------------------------------------------------------
/total '/total'
----------------------------------------------------------------------
$ before an optional \n, and the end of the
string
----------------------------------------------------------------------
) end of grouping
----------------------------------------------------------------------
If you tell me, I'll forget.
If you show me, I'll remember.
if you involve me, I'll understand.
--- Author unknown to me
|