/usr/local/CPAN/Heap-Simple-Perl/Heap/Simple/Array.pm
package Heap::Simple::Array;
$VERSION = "0.03";
use strict;
use Carp;
sub _elements {
my ($class, $heap, $name, $elements) = @_;
if (defined($elements->[1])) {
$elements->[1] =~ /^\s*(-?\d+)\s*$/ || Carp::croak "index '$elements->[1]' for $elements->[0] elements is not an integer";
$heap->[0]{index} = $1+0;
} else {
$heap->[0]{index} = 0;
}
return $name, $heap->[0]{index};
}
sub _KEY {
return $_[1] . "->[$_[0][0]{index}]"
}
sub _QUICK_KEY {
return $_[1] . "->[$_[0][0]{index}]"
}
sub key_index {
my $heap = shift;
$heap->_make("sub key_index() {
return $heap->[0]{index};
}");
return $heap->key_index(@_);
}
sub elements {
return wantarray ? (Array => shift->[0]{index}) : "Array";
}
1;