I get the following when installing/removing packages:
Use of uninitialized value in substitution (s///) at
/usr/share/ perl5/Debconf/ Format/ 822.pm line 57, <$__ANONIO__> line 1.
Use of uninitialized value in substitution (s///) at
/usr/share/ perl5/Debconf/ Format/ 822.pm line 57, <$__ANONIO__> line 4.
Use of uninitialized value in substitution (s///) at
/usr/share/ perl5/Debconf/ Format/ 822.pm line 57, <$__ANONIO__> line 5.
Use of uninitialized value in substitution (s///) at
/usr/share/ perl5/Debconf/ Format/ 822.pm line 57, <$__ANONIO__> line 6.
Use of uninitialized value in hash element at
/usr/share/ perl5/Debconf/ DbDriver/ File.pm line 51, <$__ANONIO__> chunk 15.
I'm no expert but it seems to be related to the following bit of code in 822.pm:
my $invars=0;
my $line;
while ($line = <$fh>) {
chomp $line;
last if $line eq ''; # blank line is our record delimiter
if ($invars) {
if ($line =~ /^\s/) {
$line =~ s/^\s+//;
my ($var, $value) =split( /\s*=\s? /, $line, 2);
$value= ~s/\\n/ \n/g;
$ret{ variables} ->{$var} =$value;
next;
}
else {
$invars= 0;
}
}
... blah, blah, blah ...
}
IIRC $invars=0 will cause it to evaluate to boolean false, in which case it will
get set to 0 again which makes no sense. Because $invars is set to 0 this means
that the first code block of the if statement gets skipped and $value doesn't
get set which leads to an error when we get to:
elsif (length $key) {
$value= ~s/\\n/ \n/g;
$ret{fields} ->{$key} =$value;
}
So it looks to my untrained eye as if $invars should initially be set to 1.