NAME

Doubly::Linked::PP - linked lists

VERSION

Version 0.04

SYNOPSIS

use Doubly::Linked::PP;

my $list = Doubly->new();

$list->bulk_add(1..100000);

$list->data; # 1;

$list->length; # 100000;

$list = $list->end;

$list->data; # 100000;

$list->prev->data; # 99999;

BENCHMARK

use Benchmark qw(:all :hireswallclock);
use lib '.';
use Doubly::Linked::PP;
use Doubly;

my $r = timethese(100000, {
	'Doubly::Linked::PP' => sub {
		my $linked = Doubly::Linked::PP->new(123);
		$linked->bulk_add(0..1000);
		$linked = $linked->end;
		$linked->is_end;
		$linked = $linked->start;
		$linked->is_start;
		$linked->add(789);
	},
	'Doubly' => sub {
		my $linked = Doubly->new(123);
		$linked->bulk_add(0..1000);
		$linked = $linked->end;
		$linked->is_end;
		$linked = $linked->start;
		$linked->is_start;
		$linked->add(789);
	}
});

cmpthese $r;

...

Benchmark: timing 100000 iterations of Doubly, Doubly::Linked::PP...
    Doubly: 2.87622 wallclock secs ( 2.58 usr +  0.30 sys =  2.88 CPU) @ 34722.22/s (n=100000)
Doubly::Linked::PP: 2.21881 wallclock secs ( 2.22 usr +  0.00 sys =  2.22 CPU) @ 45045.05/s (n=100000)
		      Rate             Doubly Doubly::Linked::PP
Doubly             34722/s                 --               -23%
Doubly::Linked::PP 45045/s                30%                 --

SEE ALSO

Doubly

Doubly::Linked

AUTHOR

LNATION, <email at lnation.org>

BUGS

Please report any bugs or feature requests to bug-doubly-linked-pp at rt.cpan.org, or through the web interface at https://rt.cpan.org/NoAuth/ReportBug.html?Queue=Doubly-Linked-PP. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc Doubly::Linked::PP

You can also look for information at:

ACKNOWLEDGEMENTS

LICENSE AND COPYRIGHT

This software is Copyright (c) 2025 by LNATION.

This is free software, licensed under:

The Artistic License 2.0 (GPL Compatible)