use strict; use Data::Dumper; my $checked; my $GroupDN="GRP_ADL001"; $checked->{Group}{$GroupDN}=1; #print Dumper($checked); my $rc_OK; exists($checked->{Group}{$GroupDN}) ? $rc_OK=1 : $rc_OK=check_group($GroupDN,0); # this does NOT work $rc_OK=exists($checked->{Group}{$GroupDN}) ? 1 : check_group($GroupDN,0); # this does work print "rc_OK (=$rc_OK)\n"; print "====\n"; if(exists($checked->{Group}{$GroupDN})){ $rc_OK=1 } else{ $rc_OK=check_group($GroupDN,0); } print "rc_OK (=$rc_OK)\n"; sub check_group{ my($group,$rc)=@_; print "check_group $group $rc\n"; return($rc); }