array of hash - perl

How do I get the unique hashes from an array of hashes?

@ar1 = ( {a=>1,b=>2}, {c=>3,d=>4},{a=>1,b=>2});

I need :

@ar2 = ( {a=>1,b=>2}, {c=>3,d=>4});

Thanks.

perl -MData::Dumper -le'
  @ar1 = ( 
    {
      a => 1,
      b => 2
      }, 
    {
      c => 3,
      d => 4
      },
    { 
      a => 1,
      b => 2 
      }
      );

  for (@ar1) {
    push @ar2, $_ unless 
      $c{ join "\0", sort %$_ }++  
    }
  
  print Dumper \@ar2;
    '

Thanks. It worked.