- 论坛徽章:
- 0
|
本帖最后由 infernor 于 2011-04-16 14:17 编辑
- #!/usr/bin/perl
- #==========================================================================
- # FILE: page.pl
- # AUTHOR: YOUR NAME (),
- # VERSION: 1.0
- # CREATED: 2011/4/15 21:24:09
- use strict;
- use warnings;
- my ($page, $current) = @ARGV;
- my @page = $current-4..$current+4;
- #left
- if ($current - 1 < 10) {
- my $l_r = ($current+4 >9)?$current+4:9;
- @page = 1..$l_r;
- }
- else {
- unshift @page, 1,2,0;
- }
- #right
- if ($page-$current < 10) {
- pop @page for (1..9);
- my $r_l = ($page-$current > 4)?$current-4:$page-8;
- push @page, $r_l..$page;
- }
- else {
- push @page, 0,$page-1,$page;
- }
- # when page < 10
- @page = grep {$_ >= 0} @page;
- shift @page unless $page[0];
- print join ',', @page;
复制代码 算法不好,勉强实现了功能,有没有简单点的实现方式? |
|