and see if I still get $a and $b for free
You can get at them:
use warnings; use strict; { package Bar; my $obj = Foo->new; print join ", ", sort {$obj->mysort($a,$b,"bar")} qw/x a o/; } { package Foo; sub new { bless {}, shift } use Data::Dump 'pp'; sub mysort { pp \@_; $_[0] cmp $_[1]; } } __END__ [bless({}, "Foo"), "x", "a", "bar"] [bless({}, "Foo"), "x", "o", "bar"] [bless({}, "Foo"), "o", "a", "bar"] x, o, a
Updated example: Previously I had mysort reaching into the main package via $::a, which is obviously not the best solution, now I'm passing $a and $b as parameters. (I see the AM made the same suggestion.) Update 2: There are other solutions possible as well.
Hope this helps,
-- Hauke D
In reply to Re^3: Sort mechanics problems... (updated)
by haukex
in thread Sort mechanics problems with objects and potentially contradicting comparisons (would cause infinite loop)
by anonymized user 468275
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |