#!/usr/bin/perl use warnings; use strict; use Data::Dumper; 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'} ); # 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 $file_attachment (@file_attachments) { print "$file_attachment\n"; } # Looping through the hash and printing out all the hash "price" elements. for my $file_attachment (@file_attachments) { print $file_attachment->{price}, "\n"; } # Looping through the hash and printing out all the hash "desc" elements. for my $file_attachment (@file_attachments) { print $file_attachment->{desc}, "\n"; } # Change price to an array reference. $file_attachments[0]{price} = [12, 12.5]; $file_attachments[1]{price} = [ $file_attachments[1]{price} ]; push @{ $file_attachments[1]{price} }, 10.5; $file_attachments[2]{price} = []; @{ $file_attachments[2]{price} } = (13, 13.5); print Dumper \@file_attachments;