In an old-skool stylee:

#! /usr/bin/perl use strict; use warnings FATAL => 'all'; use POSIX 'ceil'; use CGI ':standard'; my $currentpage = param('p') || 1; if (invalidpage()) { die "You've asked for something out of range"; } outputpage(); { my $firstonpage; sub firstonpage { return $firstonpage if defined $firstonpage; my $offset = pagesize() - 1; $firstonpage = ($currentpage * pagesize()) - $offset; return $firstonpage; } } { my $lastonpage; sub lastonpage { return $lastonpage if defined $lastonpage; $lastonpage = ($currentpage * pagesize()); return $lastonpage; } } sub previouspage { $currentpage == firstpage() ? undef : $currentpage - 1; } sub nextpage { $currentpage == lastpage() ? undef : $currentpage + 1; } { my @range; sub getrange { return @range if scalar @range; my $curpos = tell(DATA); local $. = 0; while (<DATA>) { $. <= lastonpage() and $. >= firstonpage() ? push @range, $_ : next; } seek(DATA, $curpos, 0); return @range; } } sub outputpage { do { printheader(); printrange(); printnavline(); } or die $!; } sub printheader { print header; print start_html( -title => 'pager', -style => 'body { font-family: courier, monospace; }' ); print "~----4NoVyM0U5*m0Nk----~", br(); } sub printrange { for (@{[getrange()]}) { print $_, br() } } sub printnavline { if (previouspage()) { print a({-href => '?p=' . previouspage()},'&lt;'); } else { print '&nbsp;'; } print '&nbsp;' x 22; print a({-href => '?p=' . nextpage()},'&gt;') if nextpage(); print $/; print end_html; } sub invalidpage { my $c = $currentpage; if ($c < firstpage() || $c > lastpage()) { return 1; } else { return 0; } } sub pagesize { 10 } sub firstpage { 1 } { my $lastpage; sub lastpage { return $lastpage if defined $lastpage; $lastpage = ceil(numberofentries() / pagesize()); return $lastpage; } } { my $numberofentries; sub numberofentries { return $numberofentries if defined $numberofentries; local $. = 0; my $curpos = tell(DATA); while (<DATA>) { next } seek(DATA, $curpos, 0); $numberofentries = $.; return $numberofentries } } # NOTE THE GUY SAYS HE WANTS IT # IN A TEXT FILE: __DATA__ 001 Xxxxxxxxxxxxxxxxxxxx 002 xXxxxxxxxxxxxxxxxxxx 003 xxXxxxxxxxxxxxxxxxxx 004 xxxXxxxxxxxxxxxxxxxx 005 xxxxXxxxxxxxxxxxxxxx 006 xxxxxXxxxxxxxxxxxxxx 007 xxxxxxXxxxxxxxxxxxxx 008 xxxxxxxXxxxxxxxxxxxx 009 xxxxxxxxXxxxxxxxxxxx 010 xxxxxxxxxXxxxxxxxxxx 011 xxxxxxxxxxXxxxxxxxxx 012 xxxxxxxxxxxXxxxxxxxx 013 xxxxxxxxxxxxXxxxxxxx 014 xxxxxxxxxxxxxXxxxxxx 015 xxxxxxxxxxxxxxXxxxxx 016 xxxxxxxxxxxxxxxXxxxx 017 xxxxxxxxxxxxxxxxXxxx 018 xxxxxxxxxxxxxxxxxXxx 019 xxxxxxxxxxxxxxxxxxXx 020 xxxxxxxxxxxxxxxxxxxX 021 xxxxxxxxxxxxxxxxxxXx 022 xxxxxxxxxxxxxxxxxXxx 023 xxxxxxxxxxxxxxxxXxxx 024 xxxxxxxxxxxxxxxXxxxx 025 xxxxxxxxxxxxxxXxxxxx 026 xxxxxxxxxxxxxXxxxxxx 027 xxxxxxxxxxxxXxxxxxxx 028 xxxxxxxxxxxXxxxxxxxx 029 xxxxxxxxxxXxxxxxxxxx 030 xxxxxxxxxXxxxxxxxxxx 031 xxxxxxxxXxxxxxxxxxxx 032 xxxxxxxXxxxxxxxxxxxx 033 xxxxxxXxxxxxxxxxxxxx 034 xxxxxXxxxxxxxxxxxxxx 035 xxxxXxxxxxxxxxxxxxxx 036 xxxXxxxxxxxxxxxxxxxx 037 xxXxxxxxxxxxxxxxxxxx 038 xXxxxxxxxxxxxxxxxxxx 039 Xxxxxxxxxxxxxxxxxxxx 040 xXxxxxxxxxxxxxxxxxxx 041 xxXxxxxxxxxxxxxxxxxx 042 xxxXxxxxxxxxxxxxxxxx 043 xxxxXxxxxxxxxxxxxxxx 044 xxxxxXxxxxxxxxxxxxxx 045 xxxxxxXxxxxxxxxxxxxx 046 xxxxxxxXxxxxxxxxxxxx 047 xxxxxxxxXxxxxxxxxxxx 048 xxxxxxxxxXxxxxxxxxxx 049 xxxxxxxxxxXxxxxxxxxx 050 xxxxxxxxxxxXxxxxxxxx 051 xxxxxxxxxxxxXxxxxxxx 052 xxxxxxxxxxxxxXxxxxxx 053 xxxxxxxxxxxxxxXxxxxx 054 xxxxxxxxxxxxxxxXxxxx 055 xxxxxxxxxxxxxxxxXxxx 056 xxxxxxxxxxxxxxxxxXxx 057 xxxxxxxxxxxxxxxxxxXx 058 xxxxxxxxxxxxxxxxxxxX 059 xxxxxxxxxxxxxxxxxxXx 060 xxxxxxxxxxxxxxxxxXxx 061 xxxxxxxxxxxxxxxxXxxx 062 xxxxxxxxxxxxxxxXxxxx 063 xxxxxxxxxxxxxxXxxxxx 064 xxxxxxxxxxxxxXxxxxxx 065 xxxxxxxxxxxxXxxxxxxx 066 xxxxxxxxxxxXxxxxxxxx 067 xxxxxxxxxxXxxxxxxxxx 068 xxxxxxxxxXxxxxxxxxxx 069 xxxxxxxxXxxxxxxxxxxx 070 xxxxxxxXxxxxxxxxxxxx 071 xxxxxxXxxxxxxxxxxxxx 072 xxxxxXxxxxxxxxxxxxxx 073 xxxxXxxxxxxxxxxxxxxx 074 xxxXxxxxxxxxxxxxxxxx 075 xxXxxxxxxxxxxxxxxxxx 076 xXxxxxxxxxxxxxxxxxxx 077 Xxxxxxxxxxxxxxxxxxxx 078 xXxxxxxxxxxxxxxxxxxx 079 xxXxxxxxxxxxxxxxxxxx 080 xxxXxxxxxxxxxxxxxxxx 081 xxxxXxxxxxxxxxxxxxxx 082 xxxxxXxxxxxxxxxxxxxx 083 xxxxxxXxxxxxxxxxxxxx 084 xxxxxxxXxxxxxxxxxxxx 085 xxxxxxxxXxxxxxxxxxxx 086 xxxxxxxxxXxxxxxxxxxx 087 xxxxxxxxxxXxxxxxxxxx 088 xxxxxxxxxxxXxxxxxxxx 089 xxxxxxxxxxxxXxxxxxxx 090 xxxxxxxxxxxxxXxxxxxx 091 xxxxxxxxxxxxxxXxxxxx 092 xxxxxxxxxxxxxxxXxxxx 093 xxxxxxxxxxxxxxxxXxxx 094 xxxxxxxxxxxxxxxxxXxx 095 xxxxxxxxxxxxxxxxxxXx 096 xxxxxxxxxxxxxxxxxxxX 097 xxxxxxxxxxxxxxxxxxXx 098 xxxxxxxxxxxxxxxxxXxx 099 xxxxxxxxxxxxxxxxXxxx 100 xxxxxxxxxxxxxxxXxxxx

In reply to Re: building a dynamic webpage by Anonymous Monk
in thread building a dynamic webpage by rjsaulakh

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.