nysus has asked for the wisdom of the Perl Monks concerning the following question:
I got this:
#! /usr/bin/env perl use strict; use warnings; my $here = <<HERE; before text more text ### hjh jh ja jhjasdhf jh'j asdk kas dkjakdjf kasjd fkjasdkfj kajsdkjf kasjdf end ### after headline after text HERE $here =~ s/(^(#+)\s)(.*?)\g2/$2 . ' ' . $3 =~ s|\n||rg . $2/mse; print $here . "\n";
I expect this to be output:
before text more text ### hjh jh ja jhjasdhf jh'jasdk kas dkjakdjf kasjd fkjasdkfjkajsdkjf k +asjdf end ### after headline after text
Output I get:
Use of uninitialized value $2 in concatenation (.) or string at /Users +/me/perl/workshop/regex/tut.pl line 16. before text more text ### hjh jh ja jhjasdhf jh'jasdk kas dkjakdjf kasjd fkjasdkfjkajsdkjf k +asjdf end after headline after text
I can fix this by assigning $2 go a new scalar variable first and then using the new variable. But I'm not sure why I have to do that.
$PM = "Perl Monk's";
$MCF = "Most Clueless Friar Abbot Bishop Pontiff Deacon Curate Priest Vicar";
$nysus = $PM . ' ' . $MCF;
Click here if you love Perl Monks
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Can't figure out why capture group is not output by substitution regex
by hippo (Bishop) on Aug 24, 2020 at 15:49 UTC | |
by nysus (Parson) on Aug 24, 2020 at 16:14 UTC | |
Re: Can't figure out why capture group is not output by substitution regex
by Eily (Monsignor) on Aug 24, 2020 at 15:57 UTC | |
by nysus (Parson) on Aug 24, 2020 at 16:15 UTC |
Back to
Seekers of Perl Wisdom