Perl 複雜陣列與雜湊
作者:cross 日期:2010-02-20 12:20
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 後面帶的參數
作者:cross 日期:2009-08-20 18:10
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
結果
c 3
a 1
b 2
perl 建置一個 hash 反回 ref
作者:cross 日期:2009-08-20 17:58
一個 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
- 1



