CC: | rkeen [...] multimap.com |
Subject: | Error running Perl Debugger: "Bizarre copy of ARRAY in leave ..." |
In some cases, on running the Perl Debugger on a program that uses Convert::Translit, the
following error message occurs:
Bizarre copy of ARRAY in leave at /usr/local/lib/perl5/site_perl/5.8.5/Convert/Translit.pm
line 427, <RFC> line 2719.
The attached patch fixes this issue. It was taken from a friend of a friend who used to know
some guy who dated a girl who used to be subscribed to London.pm and saved this before
the mailing list archives crashed.
An example:
$ perl -d some_script.pl
Loading DB routines from perl5db.pl version 1.27
Editor support available.
Enter h or `h h' for help, or `man perldebug' for more help.
Bizarre copy of ARRAY in leave at /usr/local/lib/perl5/site_perl/5.8.5/Convert/Translit.pm
line 427, <RFC> line 2719.
Compilation failed in require at some_script.pl line 70, <RFC> line 2719.
at some_script.pli line 70
...
BEGIN failed--compilation aborted at browse.cgi line 70, <RFC> line 2719.
at browse.cgi line 70
Debugged program terminated. Use q to quit or R to restart,
use O inhibit_exit to avoid stopping after program termination,
h q, h R or h O to get additional info.
DB<1> q
Hope this helps,
-Steve
Subject: | convert-translit-debug.patch |
--- /home/spurkis/perl5lib/Convert/Translit.pm 2006-08-22 17:00:13.000000000 +0100
+++ /usr/local/lib/perl5/site_perl/5.8.5/Convert/Translit.pm 1997-11-06 17:38:13.000000000 +0000
@@ -424,22 +424,22 @@
my ($jj, $uu, $ww, $xx, $yy, $chch, $tabref);
$chch = shift; # $chset[0 or 1]
$tabref = shift; # reference to @thistab
-for $jj ( 0 .. $#{$tabref} ){
- $ww = $$tabref[$jj];
- if ($ww !~ /^&(charset|alias)\s+([^\s]*)/){
- next;
- }
- $xx = $1; $yy = $2;
- if ($chch =~ /^$yy$/i) {
- if ($verbose) {print "Found $xx $yy";}
- if ($xx eq "alias") {
- $uu = $$tabref[0];
- $uu =~ s/^&//;
- if ($verbose) {print " for $uu";}
- }
- if ($verbose) {print "\n";}
- return 1; # true
- }
+for $jj ( 0 .. $#{@$tabref} ){
+ $ww = $$tabref[$jj];
+ if ($ww !~ /^&(charset|alias)\s+([^\s]*)/){
+ next;
+ }
+ $xx = $1; $yy = $2;
+ if ($chch =~ /^$yy$/i) {
+ if ($verbose) {print "Found $xx $yy";}
+ if ($xx eq "alias") {
+ $uu = $$tabref[0];
+ $uu =~ s/^&//;
+ if ($verbose) {print " for $uu";}
+ }
+ if ($verbose) {print "\n";}
+ return 1; # true
+ }
}
return undef; # false
} # end of sub relvnt_tab