This gives the following output:use re 'debug'; 'foo' =~ m/.*/; print eval <STDIN>;
Compiling REx `.*'
size 3 first at 2
1: STAR(3)
2: REG_ANY(0)
3: END(0)
anchored(MBOL) implicit minlen 0
Omitting $` $& $' support.
EXECUTING...
Matching REx `.*' against `foo'
Setting an EVAL scope, savestack=3
0 <> <foo> | 1: STAR
REG_ANY can match 3 times out of 32767...
Setting an EVAL scope, savestack=3
3 <foo> <> | 3: END
Match successful!
Before waiting for the input. It actually specifies that it's omitting $&, etc support, yet when you do enter $& still gives the expected answer:
Freeing REx: `.*' fooIf you use a plain text match (like tilly suggested with /ri/ in 'string', you don't get this result at all, as perl doesn't handle the match in the same way, it "guesses" the result, presumably using a more index() like way of making the match:
gives the output:use re 'debug'; 'foo' =~ m/o/; print eval <STDIN>;
$ perl reg Compiling REx `o' size 3 first at 1 rarest char o at 0 1: EXACT <o>(3) 3: END(0) anchored `o' at 0 (checking anchored isall) minlen 1 Omitting $` $& $' support. EXECUTING... Guessing start of match, REx `o' against `foo'... Found anchored substr `o' at offset 1... Guessed: match at offset 1 $& Segmentation fault (core dumped)$` and $' don't have quite such drastic efects, they simply print blank.
Giving:use re 'debug'; 'foo' =~ m/(?<=f)o(?=o)/; print eval <STDIN>;
$ perl reg
Compiling REx `(?<=f)o(?=o)'
size 15 first at 1
rarest char o at 0
1: IFMATCH[-1](7)
3: EXACT <f>(5)
5: SUCCEED(0)
6: TAIL(7)
7: EXACT <o>(9)
9: IFMATCH[-0](15)
11: EXACT <o>(13)
13: SUCCEED(0)
14: TAIL(15)
15: END(0)
anchored `o' at 0 (checking anchored) minlen 1
Omitting $` $& $' support.
EXECUTING...
Guessing start of match, REx `(?<=f)o(?=o)' against `foo'...
Found anchored substr `o' at offset 1...
Guessed: match at offset 1
Matching REx `(?<=f)o(?=o)' against `oo'
Setting an EVAL scope, savestack=3
1 <f> <oo> | 1: IFMATCH[-1]
0 <> <foo> | 3: EXACT <f>
1 <f> <oo> | 5: SUCCEED
could match...
1 <f> <oo> | 7: EXACT <o>
2 <fo> <o> | 9: IFMATCH[-0]
2 <fo> <o> | 11: EXACT <o>
3 <foo> <> | 13: SUCCEED
could match...
2 <fo> <o> | 15: END
Match successful!
$&
Freeing REx: `(?<=f)o(?=o)'
o
In reply to Re: Re (tilly) 1: Perl is psychic?!
by pileswasp
in thread Perl is psychic?!
by MrNobo1024
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |