#! /usr/bin/env perl use strict; use warnings; sub remove_duplicates { my ( $nameR, $gebR ) = @_; die "Arrays are not same size.\n" if $#{$nameR} != $#{$gebR}; # identify duplicates and remember their indexes my %seen; my @idx = grep { $seen{$nameR->[$_].$gebR->[$_] }++ } 0 .. $#{$nameR}; # remove the identified elements for my $i ( @idx ) { splice @$nameR, $i, 1; splice @$gebR, $i, 1; } } my @name = ("heinz", "karl", "Peter", "Anne", "heinz", "Anne"); my @geb = ("20101920", "23011929", "02121915", "06041966","20101920", "07071977"); # keep in mind: this modifies the given arrays remove_duplicates( \@name, \@geb ); # check result printf "%8s ", $_ for @name; print "\n"; printf "%8s ", $_ for @geb; print "\n";