Package: perl Version: 5.20.2-3+deb8u5 Severity: serious Control: affects -1 libtrycatch-perl
Hi! We've noticed some code using the TryCatch module (libtrycatch-perl package) that stopped working after the stable update. Setting as serious as this looks like a regression for code that used to work, and for which I don't see anything supposedly wrong with it (?), which follows the documented pattern. Here's a small reproducer showing the problem: ,--- $ cat trycatch.pl #!/usr/bin/perl use strict; use warnings; use TryCatch; try { die "oops\n"; } catch($e) { print "catch: $e"; } 1; $ /trycatch.pl catch: oops $ sudo apt upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done The following packages will be upgraded: libperl-dev libperl5.20 perl perl-base perl-modules 5 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 0 B/8580 kB of archives. After this operation, 22.5 kB of additional disk space will be used. Do you want to continue? [Y/n] y (Reading database ... 28659 files and directories currently installed.) Preparing to unpack .../libperl5.20_5.20.2-3+deb8u5_amd64.deb ... Unpacking libperl5.20 (5.20.2-3+deb8u5) over (5.20.2-3+deb8u4) ... Preparing to unpack .../libperl-dev_5.20.2-3+deb8u5_amd64.deb ... Unpacking libperl-dev (5.20.2-3+deb8u5) over (5.20.2-3+deb8u4) ... Preparing to unpack .../perl_5.20.2-3+deb8u5_amd64.deb ... Unpacking perl (5.20.2-3+deb8u5) over (5.20.2-3+deb8u4) ... Preparing to unpack .../perl-base_5.20.2-3+deb8u5_amd64.deb ... Unpacking perl-base (5.20.2-3+deb8u5) over (5.20.2-3+deb8u4) ... Processing triggers for man-db (2.7.0.2-5) ... Setting up perl-base (5.20.2-3+deb8u5) ... (Reading database ... 28660 files and directories currently installed.) Preparing to unpack .../perl-modules_5.20.2-3+deb8u5_all.deb ... Unpacking perl-modules (5.20.2-3+deb8u5) over (5.20.2-3+deb8u4) ... Setting up libperl5.20 (5.20.2-3+deb8u5) ... Setting up perl-modules (5.20.2-3+deb8u5) ... Setting up perl (5.20.2-3+deb8u5) ... Setting up libperl-dev (5.20.2-3+deb8u5) ... Processing triggers for libc-bin (2.19-18+deb8u4) ... $ ./trycatch.pl Global symbol "$e" requires explicit package name at ./trycatch.pl line 11. syntax error at ./trycatch.pl line 11, near ") {" Execution of ./trycatch.pl aborted due to compilation errors. # Modifying the code by making the catch use cuddled braces, fixes the # problem though $ vi trycatch.pl $ cat trycatch.pl #!/usr/bin/perl use strict; use warnings; use TryCatch; try { die "oops\n"; } catch($e) { print "catch: $e"; } 1; $ ./trycatch.pl catch: oops # It seems that removing the '\n' in the die also makes a difference. $ cat trycatch.pl #!/usr/bin/perl use strict; use warnings; use TryCatch; try { die "oops"; } catch($e) { print "catch: $e"; } 1; $ ./trycatch.pl catch: oops at ./trycatch.pl line 7. `--- Thanks, Guillem