代码之家  ›  专栏  ›  技术社区  ›  sid_com

将哈希写入文件的最佳方法

  •  2
  • sid_com  · 技术社区  · 14 年前

    根据DBMOpen Docu的说法,这个函数在很大程度上已经被“tie”函数所取代。 我知道TIE::文件模块,它通过Perl数组访问磁盘文件的行。 如果我不需要数组而只需要散列,我该怎么做?

    4 回复  |  直到 14 年前
        1
  •  4
  •   jira    14 年前

    Storable

     use Storable;
     store \%hash, 'file';
     my $hashref = retrieve('file');
    

    BerkeleyDB

    use BerkeleyDB;
    use MLDBM qw(BerkeleyDB::Hash) ;
    use Storable;
    
    
    my $env = BerkeleyDB::Env->new(-Home => $home);
    tie %store, 'MLDBM', -env => $env;
    
    $store{my_stored_hash} = \%hash;
    
        2
  •  2
  •   sid_com    14 年前

    use Fcntl;
    use SDBM_File;
    
    tie(%h, 'SDBM_File', 'filename', O_RDWR|O_CREAT, 0666) or die $!;
    ...
    ...
    untie %h;
    

        3
  •  1
  •   Porculus    14 年前

    tie dbmopen

        4
  •  -10
  •   Eamorr    14 年前

    open(OUT,">myFile.txt");
    
    foreach my $key (sort keys %hash) {
       print OUT $key.",".$hash{$key}."\n";
    }
    close(OUT);