elsif($winners eq "denmark\n") { print "Denmark - people at competition:\n"; foreach $guest(@people) { if(length($guest->{'id'}) == 15 && $guest->{'id'} =~ /^20[0-5]|^26|^28/) { &write(#dont know what parameters should give) } } } # My function sub write { print "$guest->{'surname'} "; print "$guest->{'name'}"; print ":$guest->{'id'}\n"; } If i do it like this it works without problem elsif($winners eq "denmark\n") { print "Denmark - people at competition:\n"; foreach $guest(@people) { if(length($guest->{'id'}) == 15 && $guest->{'id'} =~ /^20[0-5]|^26|^28/) { print "$guest->{'surname'} "; print "$guest->{'name'}"; print ":$guest->{'id'}\n"; } } }