Since commit 113533 (Dpkg::Deps: cleanup API, 2009-12-02), the REL_*
constants have been used as keys when defining the
%relation_ordering hash:

 our %relation_ordering = (
        'undef' => 0,
        REL_GE => 1,
        REL_GT => 2,
        REL_EQ => 3,
        REL_LT => 4,
        REL_LE => 5,
 )

Unfortunately, the => operator stringizes the REL_* identifiers, so
that their names rather than their values get used as keys.  As a
result, expressions like %relation_ordering{'>='} are no longer
defined.

Avoid the unwanted stringization by parenthesizing the lhs of the
=> operator.

Signed-off-by: Jonathan Nieder <[email protected]>
---
Hi Raphaƫl,

When I run dpkg-shlibdeps with recent (unreleased) dpkg-dev, I get

Use of uninitialized value in numeric comparison (<=>) at 
/usr/share/perl5/Dpkg/Deps.pm line 343.

This fixes it for me.  An alternative fix would be to use a comma
instead of =>, but I kind of like the look of the => operator. :)

Regards,
Jonathan

 scripts/Dpkg/Deps.pm |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/scripts/Dpkg/Deps.pm b/scripts/Dpkg/Deps.pm
index 9d98e5e..9166f57 100644
--- a/scripts/Dpkg/Deps.pm
+++ b/scripts/Dpkg/Deps.pm
@@ -317,11 +317,11 @@ This function is mainly used to implement the sort() 
method.
 
 our %relation_ordering = (
        'undef' => 0,
-       REL_GE => 1,
-       REL_GT => 2,
-       REL_EQ => 3,
-       REL_LT => 4,
-       REL_LE => 5,
+       (REL_GE) => 1,
+       (REL_GT) => 2,
+       (REL_EQ) => 3,
+       (REL_LT) => 4,
+       (REL_LE) => 5,
 );
 
 sub deps_compare {
-- 
1.7.0


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]
Archive: http://lists.debian.org/[email protected]

Reply via email to