#works fine sub addem{ ($value1, $value2)=@_; $value1+$value2; print join(':',caller); ($package, $filename, $line)=caller; } $value=addem(2,2); print "\n$value1 + $value2 = $value"; print "\nthe package = $package\n"; print "the file = $filename\n"; print "the line = $line\n"; #### #not returning anything. sub calling{ $value=addem(2,2); } sub addem{ ($value1, $value2)=@_; $value1+$value2; print join(",", caller 1); }