in reply to Re^5: Get just the unique value
in thread Get just the unique value

I tested, none of them work unfortunately, I will look also where.

Replies are listed 'Best First'.
Re^7: Get just the unique value
by CountOrlok (Friar) on Apr 05, 2013 at 18:27 UTC
    Maybe if you gave us the desired output...
      Sure, the end result is that $data only holds the unique values: From this:
      my $data = [ { 'type' => 'Paper' }, { 'type' => 'Paper' }, { 'type' => 'Plastic' }, { 'type' => 'Plastic' }, { 'type' => 'Plastic' }, { 'type' => 'Plastic' }, { 'type' => 'Cotton' }, { 'type' => 'Cotton' }, { 'type' => 'Cotton' }, { 'type' => 'Cotton' }, { 'type' => 'Cotton' }, { 'type' => 'Paper' }, { 'type' => 'Paper' }, { 'type' => 'Paper' }, { 'type' => 'Paper' }, { 'type' => 'Paper' }, ];
      To that:
      $data = [ { 'type' => 'Paper' }, { 'type' => 'Plastic' }, { 'type' => 'Cotton' }, ];
        hdb's code does exactly that, albeit sorted.
Re^7: Get just the unique value
by hdb (Monsignor) on Apr 05, 2013 at 19:34 UTC

    How about this?

    my %types; my $res; foreach my $entry (@$data) { push @$res, $entry unless $types{$entry->{"type"}}++; } print Dumper $res;

      Or this without helper hash?

      my $res; foreach my $entry (@$data) { push @$res, $entry unless grep { $_->{"type"} eq $entry->{"type"} +} @$res; } print Dumper $res;