Data-Stack-Shared

 view release on metacpan or  search on metacpan

eg/str_undo.pl  view on Meta::CPAN

use strict;
use warnings;
use FindBin;
use lib "$FindBin::Bin/../blib/lib", "$FindBin::Bin/../blib/arch";
use Data::Stack::Shared;
$| = 1;

my $undo = Data::Stack::Shared::Str->new(undef, 50, 128);

# simulate operations
for my $op ("create file.txt", "write 100 bytes", "chmod 644", "rename to file.bak") {
    $undo->push($op);
    printf "do: %s\n", $op;
}
printf "\nstack size: %d\n\n", $undo->size;

# undo last 2
for (1..2) {
    my $op = $undo->pop;
    printf "undo: %s\n", $op;
}



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