如何在散列或数组中存储/ etc/passwd?

San*_*ing 1 linux perl

我想将结果存储/etc/passwd在一个结构中,所以我可以稍后更新每个值,但我无法弄清楚要使用哪个结构.

#!/usr/bin/perl

use warnings;
use strict;

open PASSWD, "/etc/passwd";
while(<PASSWD>) {

    chomp;
    my @f = split /:/;

    print "username $f[0]\n";
    print "password $f[1]\n";
    print "uid      $f[2]\n";
    print "gid      $f[3]\n";
    print "gecos    $f[4]\n";
    print "home     $f[5]\n";
    print "shell    $f[6]\n";
    print "--------------------------\n";

}
Run Code Online (Sandbox Code Playgroud)

我假设它应该是一个哈希数组,其中用户名是关键,但我无法弄清楚如何做到这一点.

"阵列哈希阵列"是要走的路吗?

Sin*_*nür 12

Passwd :: Unix:

抽象

Passwd::Unix提供了一个抽象面向对象和功能接口标准的Unix文件,如/etc/passwd,/etc/shadow,/etc/group.此外,该模块还提供了测试新软件的环境,而无需使用系统关键文件/etc