There are a number of useful Perl scripts distributed with TeX and friends. Perl deprecated the use of unescaped literal characters in regular expressions in version 5.16 and now they're no longer permissible and will cause an error. Some of the Perl scripts in the TeX distributions suffered from this problem in the past but have now been fixed, but users are still picking up old versions that don't work with new versions of Perl.

Can we have a definitive list of all Perl scripts provided with TeX distributions that have fixed this issue (with version number) for easy reference whenever there's a new question that includes an error message like:

Unescaped left brace in regex is illegal here in regex; marked by <-- HERE
  • 2
    This question should be in the primary site, not meta.
    – lhf
    Nov 13, 2017 at 12:06
  • 1
    @lhf It was intended as a reference question, like Often referenced questions. Perhaps it should've been a separate answer on that question, but it didn't quite fit the format. Nov 13, 2017 at 13:35

1 Answer 1



Fixed in Repository but Pending New Release

Not Yet Fixed


(There won't be any new versions of these.)

  • csvtools.pl (distributed with the obsolete csvtools package).
  • makeglos.pl (distributed with the obsolete glossary package).
  • makejmlrbook (distributed with jmlr). This no longer conforms to PMLR (formerly JMLR W&CP) guidelines. Production editors should use the newer makejmlrbookgui instead.
  • There were another few Biber warnings in version 2.7 that are only fixed in 2.8 (tex.stackexchange.com/q/395654/35864)
    – moewe
    Nov 11, 2017 at 6:54
  • @moewe Thanks, updated. Nov 11, 2017 at 11:06
  • @DavidCarlisle Good idea, added not fixed and deprecated sections. Nov 11, 2017 at 11:06
  • Do you know texdef is not updated? Because Norbert said it was on 03/10 - tex.stackexchange.com/questions/388721/… - and he should know, I guess. I can't easily tell as I patched my copy - repeatedly, in fact.
    – cfr
    Nov 12, 2017 at 0:19
  • @cfr The version that ships with TeX live 2017 (updated just seconds ago) does not seem to be updated. I just checked that I still get the error when calling texdef --help.
    – moewe
    Nov 12, 2017 at 6:57
  • @moewe That's strange. texdef --help works fine for me with TL2017 and texdef --version shows texdef: Version 1.7b -- 2012/05/15. (I have Perl v5.18.4 installed.) However, there is a pair of unescaped {} (in $_[0] =~ s/\\[{}]//g) within subroutine remove_invalid_braces which might cause a problem. Nov 12, 2017 at 12:12
  • @cfr Perhaps Norbert could verify. Maybe move it up to the "fixed but not yet released" section if it's still pending. Nov 12, 2017 at 12:13
  • I'm using Perl v5.26.0 on Ubuntu 17.10, tlmgr says texdef is on version 1.7b. Since you are using Perl v5.18.4 maybe 'These have been deprecated since v5.16, with a deprecation message raised for some uses starting in v5.22. Unfortunately, the code added to raise the message was buggy and failed to warn in some cases where it should have.' (from your link above) explains it.
    – moewe
    Nov 12, 2017 at 13:03
  • @moewe That could be it. (Perhaps I won't upgrade Perl just yet :-)) Nov 12, 2017 at 13:09
  • @moewe Though the warnings worked fine in the case of texdef - it carried on alarmingly for months and months before finally giving an error. Nicola: your perl is too old to break properly ;).
    – cfr
    Nov 12, 2017 at 23:42
  • I got clarification from Norbert and updated the answer accordingly. Hope that is OK. Cc. @moewe
    – cfr
    Nov 13, 2017 at 1:22
  • @cfr Thanks :-) Nov 13, 2017 at 13:13
  • 1
    On TeXLive 2016 (boo, I know), latexmk complains with, e.g. -C option, about "File::Glob::glob() will disappear in perl 5.30. Use File::Glob::bsd_glob() instead. at /Library/TeX/texbin/latexmk line 3253." Dunno if it is fixed already. Nov 23, 2017 at 17:01
  • 1
    @OlegLobachev I saw a recent CTAN announcement with an update for latexmk with a reference to glob, so it's possible it's just been fixed. Nov 23, 2017 at 17:04

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .