Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1331537
  • 博文数量: 268
  • 博客积分: 10698
  • 博客等级: 上将
  • 技术积分: 2867
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-14 22:21
文章分类

全部博文(268)

文章存档

2012年(19)

2011年(13)

2010年(29)

2009年(26)

2008年(99)

2007年(82)

我的朋友

分类:

2009-01-31 05:18:59




#!/usr/bin/perl
# Myst Shen, Jan.31, 2009. Last modified on Feb. 10, 2009.

use warnings;
use strict;

my ($x,$y,$y2,%h,@data,@rec,@rec2);

foreach (<>) {
    push (@data, split);
    $x ++;
}
$x < (`tput cols`) || die "Please widen this terminal.\n";
%h = @data;

$y=1;
foreach my $k (sort keys %h) {
    $y2=1;
    foreach my $k2 (sort keys %h) {
        if ($k && $k2 && $h{$k} eq $h{$k2} && $k ne $k2) {
            push (@rec, "$k $h{$k} $y\n");
            push (@rec, "$k2 $h{$k2} $y2\n");
        }
        $y2++;
    }
    $y++;
}

@rec2 = @rec;
L: foreach my $i (@rec2) {
    shift @rec;
    foreach my $j (@rec) {
        next L if ($i eq $j)
    }
    push (@rec, $i);
}

print "@rec\n";

while (@rec) {
    my @rec2=@rec;
    shift @rec;
    my @a = split (/ |\n/, $rec[0]);
    my @b = split (/ |\n/, $rec2[0]);
    my $pr = " " x $a[2];
    my $pr2 = "'" x ($b[2]-$a[2]+1);
    print "$pr$pr2\n";
    shift @rec;
}

阅读(900) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~