![]() |
|< 1 2 >| | ![]() |
17 Einträge, 2 Seiten |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
for $quellelement(@satz) #Immer erstes Element
{
for $restelement(@satz) #alle anderen Elemente
{
if ($quellelement eq $restelement) #wenn gleich
{
push(@gleich,$quellelement); #Schreibe Quellelement in @gleich
push(@gleich,$restelement); #Schreibe alle anderen die mit dem aktuellen Quellelement identisch sind in @gleich
push(@ungleich,$quellelement);#Schreibe das Quellelement in @ungleich
shift(@satz,$restelement); #Lösche nun aus der Ursprungsliste das Quellelement
} #und die anderen gerade gefundenen identischen Elemente
else
{
push(@ungleich,$quellelement); #Schreibe das Quellelement in @ungleich
#Lösche das Quellelement aus der Ursprungsliste
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
my @satz = qw(das array das durchsucht werden soll);
my (@gleich,@ungleich);
while( @satz ){
my $quell = $satz[0];
push @ungleich, $quell;
for my $i( 0..$#satz ){
if( $satz[$i] eq $quell ){
push @gleich, $satz[$i];
splice @satz, $i, 1;
}
}
1
2
3
4
5
6
7
8
9
10
11
# zaehlen, wie oft jedes Element vorkommt
my %cache;
$cache{ $_ } ++ foreach @satz;
my( @gleich, @ungleich );
foreach ( keys %cache ) {
$cache{$_} > 1
? push( @gleich, $_ )
: push( @ungleich, $_ );
} # foreach
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my @satz = qw(hans maria jochen maria bernd hans jochen maria hans);
my (@gleich,%ungleich);
my $counter = 1;
for my $check( @satz ){
next if $ungleich{$check};
for my $i( $counter-1 .. $#satz ){
if( $check eq $satz[$i] ){
push @gleich, $satz[$i];
push @{$ungleich{$satz[$i]}},$i;
}
}
++$counter;
}
print Dumper(\@gleich,\%ungleich);
![]() |
|< 1 2 >| | ![]() |
17 Einträge, 2 Seiten |