use strict; use warnings; my @array = (["1", "1", "3"], ["1", "5", "6"], ["1", "1", "3"]); my @unique; my %seen; $seen{$_}++ or push @unique, $_ for @array; print "$_->[0] $_->[1] $_->[2]\n" for @unique;