... sub addItem { my $item = shift(@data); if(!$item) { $ref->cancel; return }; if(! $seen{$item}) { INSERT: { for my $idx (0 .. $list->size()-1) { if ($list->get($idx) ge $item) { $list->insert($idx, $item); last INSERT; } } $list->insert('end', $item); } } $seen{$item}++; }