惜しい(w
sprintf("%02d",$u) は $u の桁数を2桁で成型するって事(意訳)です。
$u =~ s/.*(\d+).s?html?$/$1/i; だと、$u の値が一桁にしかならない様なので、
#!/usr/bin/perl
use strict;
package main;
{
my $u = $ENV{DOCUMENT_URI};
$u =~ s/(\d+).s?html?$/$1/i;
my $n = $1;
my $prev = sprintf("%02d",($n - 1)) . ".shtml";
my $next = sprintf("%02d",($n + 1)) . ".shtml";
print <<__________HTML_DATA__________;
<ul>
<li><a href="$prev" rel="prev">前</a></li>
<li><a href="contents.html" rel="contents">目次</a></li>
<li><a href="$next" rel="next">次</a></li>
<ul>
__________HTML_DATA__________
exit 0;
}
こうすれば大丈夫なんじゃないでしょうか。
# 実は私、 Perl は全然詳しくないので、ここで回答して良いのか疑問なのですが…。
# きっと詳しい方がツッコミを入れてくれると願ってます。
# 段々ここで扱うべき話題か解らなくなってきました。