1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$hash{aa}='test1';
$hash{bb}='test2';
$hash{cc}='test1';
$hash{dd}='test3';
foreach $key (sort keys %hash)
{
print "\nSchluessel: $key Wert: $hash{$key}";
foreach $keyvergleich (keys %hash)
{
if( $hash{$key} eq $hash{$keyvergleich} )
{
delete $hash{$keyvergleich};
}
}
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
#!/usr/bin/perl use strict; use warnings; use 5.010; my %hash; $hash{aa}='test1'; $hash{bb}='test2'; $hash{cc}='test1'; $hash{dd}='test3'; foreach my $key (sort keys %hash) { print "\nSchluessel: $key Wert: $hash{$key}"; foreach my $keyvergleich (keys %hash) { if( $hash{$key} eq $hash{$keyvergleich} ) { delete $hash{$keyvergleich}; say "\nLoesche $keyvergleich"; } } }
QuoteSchluessel: aa Wert: test1
Loesche cc
Loesche aa
Schluessel: bb Wert: test2
Loesche bb
Use of uninitialized value in string eq at test.pl line 18.
Use of uninitialized value in concatenation (.) or string at test.pl line 14.
Use of uninitialized value in string eq at test.pl line 18.
Schluessel: cc Wert:
Schluessel: dd Wert: test3
Loesche dd
perl -E 'my %h; $h{3} = 4;delete $h{3} ;say 1 if defined $h{3}'
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
use strict; use warnings; my %hash; $hash{aa}='test1'; $hash{bb}='test2'; $hash{cc}='test1'; $hash{dd}='test3'; my $counter = 1; foreach my $key (sort keys %hash) { # schon beim ersten Durchlauf wird der Hash geleert; keine Keys mehr! %hash = (); print $counter++, "\n"; } __END__ Resultat: 1 2 3 4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/usr/bin/perl
use strict;
use warnings;
use 5.010;
my %hash;
$hash{aa}='test1';
$hash{bb}='test2';
$hash{cc}='test1';
$hash{dd}='test3';
foreach my $key (sort keys %hash)
{
print "\nSchluessel: $key Wert: $hash{$key}";
foreach my $keyvergleich (keys %hash)
{
if($keyvergleich eq $key){next;}
if( $hash{$key} eq $hash{$keyvergleich} )
{
delete $hash{$keyvergleich};
say "\nLoesche $keyvergleich";
}
}
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
#!/usr/bin/perl use strict; use warnings; use 5.010; my %hash; $hash{aa}='test1'; $hash{bb}='test2'; $hash{cc}='test1'; $hash{dd}='test3'; my %seen; # ermittle die Keys, deren Werte schon bekannt sind my @keys = grep { $seen{ $hash{$_} }++ } sort keys %hash; # Kontrolle "doppelte keys" print "$_ : $hash{$_}\n" for @keys; # Loesche diese Keys delete @hash{@keys}; # Kontrolle 2 use Data::Dumper; print Dumper \%hash;
if ( defined $hash{$key} ){}else{next;}
QuoteCode (perl): (dl )if ( defined $hash{$key} ){}else{next;}
1 2 3 4 5 6 7 8 9
if ( ! defined $hash{$key} ) { next; } # oder if ( not defined $hash{$key} ) { next; } # oder noch kürzer next if !defined $hash{$key};