#!/usr/bin/perl -w use strict; use warnings; my %user = ( 1 => 'hallo|hallo|hallo|hallo|hallo', 2 => 'hallo|hallo|hallo', ); my %foo = ( 1 => 'hallo', ); foreach my $user ( grep { (split /\|/,$user{$_})[4] # das matcht auf garnichts #defined (split /\|/,$user{$_})[4] schmeisst Syntax und Implicit-Error && defined $foo{(split /\|/,$user{$_})[4]} } keys %user ) { print "Treffer: $user\n"; }