t-rex has asked for the wisdom of the Perl Monks concerning the following question:
I have come across a regex while debugging some code and while I have understood part of it , i need to understand entirely in order to accommodate new changes in requirement.
$inp =~ s/<%([^=].*?)%>/eval $1/ges #this is one $inp =~ s/<%=(.*?)%>/eval $1/ges #this is the second
Now when i have 2 input strings one :
<% my $test=''; if (@{$ctxt{'params'}}) { $test= 'index=1011' 'asln=' . join(' ',@{$ctxt{'params'}})."\n". } $test; %>
second input string
<% $ctxt{'common_params'}; %>
My understanding of the above regex is when it encounters "<%" it substitutes the value of the variable eg: it assigns test variable with value index and asln , but i fail to understand what is eval doing here ? and what about $1 ? can anyone explain me ?
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: regex understanding help
by Eily (Monsignor) on Jan 10, 2017 at 10:10 UTC | |
Re: regex understanding help
by kcott (Archbishop) on Jan 10, 2017 at 11:40 UTC |