Package: dpkg
Version: 1.4.0.31

The Perl script "/usr/sbin/install-info" contains a construct which is
illegal in Perl.  From line 222:

do {
    last if [EMAIL PROTECTED];
    $_= shift(@work);
    push(@head,$_);
} until (m/^\*\s*Menu:/i);

do { } is not a loop block (it just looks like one), and therefore the
"last" statement is not valid here.  This was triggered in my case by a
corrupted info "dir" file, which caused "@work" to end up empty, and the
script tried to execute the "last", and failed.

A better way of writing the loop in question might be:

while (@work) {
    push(@head, $_ = shift(@work));
    last if m/^\*\s*Menu:/i;
}

       Colm

-- 
Colm Buckley B.A. B.F. # Computer Science, Trinity College, Dublin 2, Ireland.
[EMAIL PROTECTED] | [EMAIL PROTECTED] # +353 87 2469146 # whois cb3765
http://www.tuatha.org/~colm/ # finger [EMAIL PROTECTED]
Early bird gets the worm, but the second mouse gets the cheese.

Reply via email to