Thread Arrayelemente zählen (4 answers)
Opened by MartinR at 2007-07-16 11:47

Ronnie
 2007-07-16 12:15
#78523 #78523
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/perl

use strict;
use warnings;

use Data::Dumper;

my @list = qw( 9 9 9 1 1 2 2 2 2 3 3 3 3 4 4 );
my %count;

$count{$_}++ for @list;
print Dumper \%count;

my @unique;
$unique[-1] != $_ and push @unique, $_ for @list;
print Dumper \@unique;

my @set = map { { $_ => $count{$_} } } @unique;
print Dumper \@set;

Die Variante von renee mit CPAN:Tie::IxHash ist eleganter - außerdem erspart sie dir eine Warnung. Aber so geht es auch zu Fuss.

EDIT: Wobei man die Warnung auch so los wird:
Code (perl): (dl )
(!$unique[-1] or $unique[-1] != $_) and push @unique, $_ for @list;
\n\n

<!--EDIT|Ronnie|1184573970-->

View full thread Arrayelemente zählen