The Perl Toolchain Summit 2025 Needs You: You can help 🙏 Learn more

use strict;
sub new {
my $class = shift;
bless { u => $_[0], v => $_[1], w => $_[2] }, $class;
}
sub heap {
my $self = shift;
@_ ? ($self->{heap} = shift) : $self->{heap};
}
sub cmp {
($_[0]->{ w } || 0) <=> ($_[1]->{ w } || 0) ||
($_[0]->{ u } cmp $_[1]->{ u }) ||
($_[0]->{ u } cmp $_[1]->{ v });
}
sub val {
@{ $_[0] }{ qw(u v w) };
}
1;