用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - perl代码库

perl 大型DBM文件排序

2012-10-14 作者: 神马举报

[perl]代码库

#-----------------------------
use DB_File;

# specify the Perl sub to do key comparison using the
# exported $DB_BTREE hash reference
$DB_BTREE-> {'compare'} = sub
{
	my ( $key1, $key2 ) = @_ ;
	return "\L$key1" cmp "\L$key2";
};

tie ( %hash, "DB_File", $filename, O_RDWR|O_CREAT, 0666, $DB_BTREE )
or die "can't tie $filename: $!";
#-----------------------------
# download the following standalone program
#!/usr/bin/perl
# sortdemo - show auto dbm sorting
use strict;
use DB_File;

$DB_BTREE-> {'compare'} = sub
{
	my ( $key1, $key2 ) = @_ ;
	"\L$key1"
	cmp "\L$key2" ;
};

my %hash;
my $filename = '/tmp/sorthash.db';
tie ( %hash, "DB_File", $filename, O_RDWR|O_CREAT, 0666, $DB_BTREE )
or die "can't tie $filename: $!";

my $i = 0;
for my $word ( qw ( Can't you go camp down by Gibraltar)) {
                    $hash{$word} = ++$i;
                    }

                    while (my($word, $number) = each %hash) {
                    printf "%-12s %d\n", $word, $number;
                    }

#-----------------------------
#by           6
#
#camp         4
#
#Can't        1
#
#down         5
#
#Gibraltar    7
#
#go           3
#
#you          2
#-----------------------------
                    tie ( %hash, "DB_File", undef, O_RDWR|O_CREAT, 0666, $DB_BTREE )
                    or die "can't tie: $!";
#-----------------------------


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...