• 1 
瀏覽模式: 普通 | 列表

Perl 複雜陣列與雜湊


1.ARRAYS OF ARRAYS

@AoA = (
 [ "fred", "barney" ],
 [ "george", "jane", "elroy" ],
 [ "homer", "marge", "bart" ],
);

$ref_AoA = [
 [ "fred", "barney" ],
 [ "george", "jane", "elroy" ],
 [ "homer", "marge", "bart" ],
];

$AoA[1][1] = "george";
$ref_AoA->[1][1] = "george";

2.HASHES OF ARRAYS

[閱讀全文]

perl 執行程式時 hash 後面帶的參數

vi hash.pl

my $hash_ref;
if (@ARGV) {
        foreach my $option (@ARGV) {
                my ($key,$value) = split /=/, $option;
                $hash_ref->{"$key"} = "$value";
        }
}
# 這是一個 HASH
print $hash_ref . " ";

# 將 key 及 value 取出來
while (my($key,$value) = each %$hash_ref) {
        print "$key $value ";
}


perl hash.pl a=1 b=2 c=3

結果
HASH(0x8c81c20)
c 3
a 1
b 2
標籤: perl hash

perl 建置一個 hash 反回 ref

一個 function

sub foo {
        my ( $login, $p, $uid, $gid, $gecos, $dir, $s );

        my %HoH = ();

        my $file = '/etc/passwd';
        open( PASSWD, "< $file" ) or die "Can't open $file : $!";

        while( <PASSWD> ) {
            ( $login, $p, $uid, $gid, $gecos, $dir, $s ) = split( ':' );

            $HoH{ $login }{ 'uid' } = $uid;
            $HoH{ $login }{ 'gid' } = $gid;
            $HoH{ $login }{ 'dir' } = $dir;
        }

        close PASSWD;

        return \%HoH;
}


my $aaa = &foo();

這時 print $aaa 會看到它是個 HASH

[閱讀全文]

標籤: perl hash

  • 1