In Variables§
See primary documentation in context for The $/ variable
$/
is the match variable. A fresh one is created in every routine. It is set to the result of the last Regex match and so usually contains objects of type Match
.
'abc 12' ~~ /\w+/; # sets $/ to a Match objectsay $/.Str; # OUTPUT: «abc»
The Grammar.parse
method also sets the caller's $/
to the resulting Match
object. For the following code:
use XML::Grammar; # zef install XMLXML::Grammar.parse("<p>some text</p>");say $/;# OUTPUT: «「<p>some text</p>」# root => 「<p>some text</p>」# name => 「p」# child => 「some text」# text => 「some text」# textnode => 「some text」# element => 「<p>some text</p>」# name => 「p」# child => 「some text」# text => 「some text」# textnode => 「some text」»
Prior to the 6.d version, you could use $()
shortcut to get the ast value from $/
Match
if that value is truthy, or the stringification of the Match
object otherwise.
'test' ~~ /.../;# 6.c language only:say $(); # OUTPUT: «tes»;$/.make: 'McTesty';say $(); # OUTPUT: «McTesty»;
This (non-)feature has been deprecated as of version 6.d.