Commit 6fa62b73 authored by Frédéric Buclin's avatar Frédéric Buclin

Bug 818621: Perl 5.16 complains with "Variable length lookbehind not implemented…

Bug 818621: Perl 5.16 complains with "Variable length lookbehind not implemented in regex" when the Example extension is enabled r=dkl a=LpSolit
parent 3272176a
...@@ -444,7 +444,13 @@ sub error_catch { ...@@ -444,7 +444,13 @@ sub error_catch {
my $new_error_msg = "Ah ah, you tried to access $page_id? Good try!"; my $new_error_msg = "Ah ah, you tried to access $page_id? Good try!";
$new_error_msg = html_quote($new_error_msg); $new_error_msg = html_quote($new_error_msg);
# There are better tools to parse an HTML page, but it's just an example. # There are better tools to parse an HTML page, but it's just an example.
$$page =~ s/(?<=<td id="error_msg" class="throw_error">).*(?=<\/td>)/$new_error_msg/si; # Since Perl 5.16, we can no longer write "class" inside look-behind
# assertions, because "ss" is also seen as the german ß character, which
# makes Perl 5.16 complain. The right fix is to use the /aa modifier,
# but it's only understood since Perl 5.14. So the workaround is to write
# "clas[s]" instead of "class". Stupid and ugly hack, but it works with
# all Perl versions.
$$page =~ s/(?<=<td id="error_msg" clas[s]="throw_error">).*(?=<\/td>)/$new_error_msg/si;
} }
sub flag_end_of_update { sub flag_end_of_update {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment