Algorithm-SlidingWindow

 view release on metacpan or  search on metacpan

README.md  view on Meta::CPAN

[![CI](https://github.com/haxmeister/perl-algorithm-slidingwindow/actions/workflows/ci.yml/badge.svg)](https://github.com/haxmeister/perl-algorithm-slidingwindow/actions/workflows/ci.yml)

# Algorithm::SlidingWindow

A **fixed-capacity sliding window** (overwrite-oldest) implemented with an **array-backed circular buffer**.

When the window is full and you add new items, the **oldest** items are automatically evicted. This is designed for streaming, metrics, logging, and sliding-window workloads where you want to keep only the most recent *N* values.

## Features

- O(1) insertion (`add`) per element
- O(1) random access (`get`)
- O(n) snapshot (`values`)
- Handles **any Perl scalar**: numbers, strings, refs, objects
- Evicted / cleared slots are set to `undef` so references are released promptly
- Minimal method call overhead and predictable behavior



( run in 6.394 seconds using v1.01-cache-2.11-cpan-cdf2f3d4e48 )