Data::Pager(3pm)
π Data::Pager π
okay bestie, gather round, because this is Data::Pager β a User Contributed Perl Documentation page (yes, a 3pm, we love a perl module manual) β and it's literally the flexible data pager of your dreams. no cap. πΈ
β¨ NAME β¨
Data::Pager β flexible data pager. that's it, that's the whole name, it does exactly what it says on the tin π
π SYNOPSIS π
okay so here's the whole vibe in one go:
use Data::Pager;
my $pager = Data::Pager->new({
current => 100,
perpage => 10,
offset => 5,
limit => 2000,
});
#~ accessors:
$pager->current; # 100
$pager->next; # 101
$pager->prev; # 99
$pager->limit; # 2000
$pager->start; # 1 # not typical start of a programmer
$pager->final; # \
# 400 (which denotes 2000 / 5 pager links)
$pager->end; # /
$pager->from; # 495 (may serve in SQL LIMIT clause)
$pager->to; # 500 (may serve in SQL LIMIT clause)
$pager->list; # 95 96 97 98 99 100 101 102 103 104 105
look at those accessors go π every single one of them is just handing you the number you asked for. iconic behaviour, honestly.
π¦ DESCRIPTION π¦
This class implements the familiar pager where the current position is centered. like, the current page is the main character and everyone else is just supporting cast around it. periodt. π
π CONSTRUCTOR π
new
my $pager = Data::Pager->new({
current => 1, # this is the current pager position
perpage => 10, # the pager consists of this number of links (defaults to 10)
offset => 5, # this is the number of results (fetched from the DB for example) per result
limit => 100, # how far is the pager allowed
});
# sample output from html table:
id ... ..... ...
1. ... ..... ...
2. ... ..... ...
3. ... ..... ...
4. ... ..... ...
5. ... ..... ...
1 2 3 4 5 6 7 8 9 10
so you pass in a hashref of vibes: current (where you're standing rn), perpage (how many links the pager gets β defaults to 10), offset (how many results per result, like fetched from the DB for example), and limit (how far the pager is even allowed to go, bestie, we have boundaries).
Returns the object β or undef if the current position is beyond the limit. π«Ά
π METHODS π
current
$pager->current();
Returns the current pager position. simple. clean. no notes. β¨
set_current($digit)
$pager->set_current(850);
$pager->set_current(850)->next();
Sets the current pager position. Returns the pager object on succes, undef on false. (yes it says "succes", we're keeping it, it's part of the lore π) also yes you can chain it, go off.
next
Returns the next pager position β or undef if this is the last one. sad but necessary. π
prev
Returns the previous pager position β or undef if this is the first one. nothing before the beginning, that's just physics. π
start
Returns 1 β the start pager position. yes, literally 1. it's giving humble.
end
Returns the end pager position.
first
Returns the first pager position for this result set.
last
Returns the last pager position for this result set.
from
'1' => {
'to' => 5,
'next' => 2,
'prev' => undef,
'from' => 0
},
'2' => {
'to' => 10,
'next' => 3,
'prev' => 1,
'from' => 5
},
...
Returns the start result this pager position refers to. look at that little data structure glowing, prev being undef at the very start like yeah babe you're the origin story. π±
to
Returns the end result this pager position refers to.
list
@_ = $pager->list;
$_ = $pager->list;
Returns the pager links for this result set. In list context it returns the resulting list. In scalar context it returns a reference to the resulting list. context-sensitive king π
# note the alignment
$pager->set_current(10);
print $pager->list; # 6 7 8 9 [10] 11 12 13 14 15
$pager->set_current(33);
print $pager->list; # 28 29 30 31 32 [33] 34 35 36 37 38
see how [10] and [33] sit dead center? that's the alignment, bestie, that's the whole point, and it is so satisfying. π§
π SEE ALSO π
Data::Page
your other pager bestie, go say hi π«Ά
π BUGS π
What BUGS?
literally the most unbothered section in any manpage ever written. the confidence. the audacity. we stan. π
π AUTHOR π
Vidul Nikolaev Petrov, vidul@cpan.org β thank you for the pager, king, we owe you our whole paginated existence π«‘
π COPYRIGHT π
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
The full text of the license can be found in the LICENSE file included with this module.
okay that's the whole page!! perl v5.40.1, dated 2025-09-24, and that's the Data::Pager(3pm) footer energy right there. go paginate something gorgeous, bestie, you got this πβ¨ππ¦πΈπ
π¦ where this page comes from
- ubuntu resolute: libdatapager-perl 0.01a-1 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu stonking: libdatapager-perl 0.01a-1 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms