sub record{ ($value, $max, $min)=@_; if($value>=$min && $value<=$max){ return{ #returning an anonymous hash value=>$value, max =>$max, min =>$min, }; }else{ return; } } $myrecord=record(100,1000,10); print $myrecord->{max}; #### $myrecord = record(100, 1000, 10) or die "That's odd"; #### return $value >= $min && $value <= $max ? { value => $value, max => $max, min => $min } : {};