kann ich nicht nachvollziehen:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
perl -wle'
use Data::Dumper;
my $data = {
q/foo@t-online.example/ => 1,
q/foo@-online.example/ => 1,
};
my $domain = "-online.example";
foreach my $email (keys %$data) {
if ($email =~ m/\@$domain$/) {
delete $data->{$email};
}
}
print Dumper $data;'
$VAR1 = {
'foo@t-online.example' => 1
};
am besten, du postest ein lauffähiges skript, was den fehler reproduziert.
siehe auch unsere FAQ, wie man code postet. minimales skript, daten, ausgabe, erwartete ausgabe.
genereller tip: schreib statt m/\@$domain$/ besser m/\@\Q$domain\E$/,
denn wenn punkte in der domain vorkommen oder andere spezielle regex-zeichen, dann werden die von m// interpretiert. ist aber in dem fall oben nicht relevant.