Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

I've switched to Strawberry Perl on my PC and I just loaded MP3::Tag into it {I used it in old of my old programs}. and I'm greeted with this error
Unescaped left brace in regex is deprecated here (and will be fatal in + Perl 5.32 ), passed through in regex; marked by <-- HERE in m/^\??({ <-- HERE ([ +^{}]+)}|.) / at C:/Strawberry/perl/site/lib/MP3/Tag.pm line 3080. Unescaped left brace in regex is deprecated here (and will be fatal in + Perl 5.32 ), passed through in regex; marked by <-- HERE in m/^({ <-- HERE [^{}] ++}|\w)/ at C:/Strawberry/perl/site/lib/MP3/Tag.pm line 3092.
I looked at the code and I can see the problem but it is is a bit baffling
for my $f (@_) { $have{$+}++ if $f =~ /^\??({([^{}]+)}|.)/; }
Is fixing this as easy as sticking backslashe in front of the of the open and close braces? The.pm is installed read-only but I can finesse that. Is it dangerous to just edit/hack a .pm in ones /site/lib hierarchy?

Replies are listed 'Best First'.
Re: Replacement for MP3::Tag
by choroba (Cardinal) on Oct 12, 2018 at 16:29 UTC
    See this bug which contains a link to a repository containing a fix by mithaldu.

    It's perfectly OK to patch the libraries (don't forget to make a backup before you do so). It's good to keep the patches around if you need to deploy the changes somewhere else, too.

    ($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,
Re: Replacement for MP3::Tag
by Corion (Patriarch) on Oct 12, 2018 at 16:29 UTC

    Yes, manual patching is a somewhat viable approach to this problem. But you should keep a text file somewhere with all the manual patches you apply.

    These bugs have been reported on RT already and there are even .patch files attached to the ticket and a Github branch mentioned with "more" fixes.