my @names = (["O'Toole","Peter"], ["O", "Ari"]); sub namesort { $a->[0] cmp $b->[0] or $a->[1] cmp $b->[1] } sub namejoin { return join(",",@{$_[0]}); } my @sorted = sort namesort @names; print join(";",namejoin($sorted[0]),namejoin($sorted[1])),"\n";