#!/usr/bin/perl # https://perlmonks.org/?node_id=1226286 use strict; use warnings; my %keep; while( ) { /(\w+),(\w+),/ or next; $keep{$2, $1} and delete $keep{$2, $1} or $keep{$1, $2} = $_; } print sort values %keep; __DATA__ personA,personB,10 personA,personC,23 personA,personD,43 personB,personA,190 personE,personF,10