#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my @HOST_IP = ("1.2.3", "5.6.7", "8.9.10"); my @HOST_NAME = ("Mary", "Zeke", "Bob"); my @HOST_DESCRIPTION = ("Development", "Test", "Manufacturing"); # create a single array structure and then sort that my @AoA; while (@HOST_IP) { push @AoA, [shift @HOST_IP, shift @HOST_NAME, shift @HOST_DESCRIPTION]; } print "The combined data as an Array of Array:\n"; foreach my $arrayRef (@AoA) { print "@$arrayRef\n"; } @AoA = sort {$a->[1] cmp $b->[1]} @AoA; print "\nSorted by column 2...\n"; foreach my $arrayRef (@AoA) { print "@$arrayRef\n"; } __END__ Prints: The combined data as an Array of Array: 1.2.3 Mary Development 5.6.7 Zeke Test 8.9.10 Bob Manufacturing Sorted by column 2... 8.9.10 Bob Manufacturing 1.2.3 Mary Development 5.6.7 Zeke Test