An Array of Hashes

Perl March 3rd, 2009

# First lets define an array of hashes.

my @file_attachments = (
       {file => 'test1.zip',  price  => '10.00',  desc  => 'the 1st test'},
       {file => 'test2.zip',  price  => '12.00',  desc  => 'the 2nd test'},
       {file => 'test3.zip',  price  => '13.00',  desc  => 'the 3rd test'},
       {file => 'test4.zip',  price  => '14.00',  desc  => 'the 4th test'}
  );

or if

my @file_attachments = ([%file_info]);
       {file => 'test1.zip',  price  => '10.00',  desc  => 'the 1st test'},
       {file => 'test2.zip',  price  => '12.00',  desc  => 'the 2nd test'},
       {file => 'test3.zip',  price  => '13.00',  desc  => 'the 3rd test'},
       {file => 'test4.zip',  price  => '14.00',  desc  => 'the 4th test'}
  );

# Get the number of items (hashes) in the array.

my $file_no = scalar (@file_attachments);

# $file_no is now: 4 in this instance as there is 4 hashes in the array.

# Looping through the hash and printing out all the hash “file” elements.

for (my $i=0; $i < $file_no; $i++) {
	print '$file_attachments[$i]{'file'}  is:'. $file_attachments[$i]{'file'}."\n";
}

# Looping through the hash and printing out all the hash “price” elements.

for (my $i=0; $i < $file_no; $i++) {
	print '$file_attachments[$i]{'price'} is:'. $file_attachments[$i]{'price'}."\n";
}

# Looping through the hash and printing out all the hash “desc” elements.

for (my $i=0; $i < $file_no; $i++) {
	print '$file_attachments[$i]{'desc'} is:'. $file_attachments[$i]{'desc'}."\n";
}

#The loops will return this output:

$file_attachments[0]{’file’} is: test1.zip
$file_attachments[1]{’file’} is: test2.zip
$file_attachments[2]{’file’} is: test3.zip
$file_attachments[3]{’file’} is: test4.zip

$file_attachments[0]{’price’} is: 10.00
$file_attachments[1]{’price’} is: 12.00
$file_attachments[2]{’price’} is: 13.00
$file_attachments[3]{’price’} is: 14.00

$file_attachments[0]{’desc’} is: the 1st test
$file_attachments[1]{’desc’} is: the 2nd test
$file_attachments[2]{’desc’} is: the 3rd test
$file_attachments[3]{’desc’} is: the 4th test

credit: htmlfixit.com

Tags: ,

How to merge Hash

Perl June 29th, 2008


%newHash = (%hash1, %hash2);

หรือในกรณีใช้ hash ที่ return จาก subroutine


%newHash = (sub(), %hash);

Tags:

Removing duplicate elements from array

Perl May 25th, 2008

without sorting

my %hash = map { $_, 1 } @array;
@array = keys %hash;

with sorting

my %hash = map { $_, 1 } @array;
@array = keys %hash;
@array = sort(@array); # sorting

with sorting (shorter)

my %hash = map { $_, 1 } @array;
@array = sort(keys %hash);

Tags: ,

Copyright © 2008 iBiz Network Co., Ltd. Powered by wordpress, Theme by ericulous