NAME
BRIANG::Dist::Perfect - A perfect distribution for a perfect year. Or perhaps not.
VERSION
This is version 0.0101 released 2020-11-21
SYNOPSIS
# Object-oriented interface
use BRIANG::Dist::Perfect;
my $C1 = BRIANG::Dist::Perfect->new();
say $C1->peek(); # 0
say $C1->counter(); # 1
say $C1->counter(); # 2
my $C2 = BRIANG::Dist::Perfect->new(3);
say $C2->peek(); # 3
say $C2->counter(); # 4
say $C2->counter(); # 5
say $C1->counter(); # 3
say $C2->counter(); # 6
# Functional interface
use BRIANG::Dist::Perfect qw(:all);
set(3);
say view(); # 3
say bump(); # 4
say view(); # 4
say bump(); # 5
say bump(); # dies
DESCRIPTION
This module is the principal component from the BRIANG::Dist::Perfect
distribution.
What a wonderful year 2020 has been, and to cap it off, here's my perfect distribution.
I intend this distribution to follow every Perl best practice I can. There is a section below with an exhaustive collection of documentation.
This "dummy" module implements a counter accessible through a functional or object-oriented interface.
Important note regarding the functional interface
Due to limitations in the implementation, the functional implementation cannot count beyond 5 and will throw an exception if asked to do so.
EXPORTS
No functions are exported automaticaly, but bump()
, set()
and view()
will be exported on request. Alternatively, the export tag ':all' may be used to export all three functions.
FUNCTIONS
bump
$next_counter_value = bump()
Increases the counter by one and returns the new value.
Exceptions Thrown
Six encountered
Thrown whenever bump()
would normally have returned the value 6.
set
set($initial_value)
Initialises the counter to $initial_value
, or zero if $initial_value
is omitted.
Exceptions Thrown
Six encountered
Thrown whenever set()
is called with $initial_value
>= 6.
view
$counter_value = view()
CONSTRUCTOR
new
$counter = BRIANG::Dist::Perfect->new($initial_value)
Initialises a new counter object, and returns it. $initial_value
is optional and is used to set an initial value for the counter. Zero is used if the argument is omitted.
METHODS
counter
$next_counter_value = $counter->count()
Adds one to the counter and returns the new value.
peek
$counter_value = $counter->peek()
Returns the value of the counter without incrementing its value.
AUTHOR, COPYRIGHT AND LICENSE
Copyright 2020 Brian Greenfield <briang at cpan dot org>
This is free software. You can use, redistribute, and/or modify it under the terms laid out in the MIT licence.
SEE ALSO
Github Actions for Perl running on Windows, Mac OSX, and Ubuntu Linux by Gabor Szabo
TODO: others?
CODE REPOSITORY AND ISSUE REPORTING
This project's source code is hosted on GitHub.com.
Issues should be reported using the project's GitHub issue tracker.
Contributions are welcome. Please use GitHub Pull Requests.