eval

Same Process ID
main() {
  echo "Process id: $$"
  eval "echo 'Process id in eval: $$'"
}

main "${@}" || exit 1
Process id: 26179
Process id in eval: 26179
Able to modify env variables of caller
set_SOME_VAR(){
  SOME_VAR="some other value"
}

main() {
  SOME_VAR="some value"
  echo "before eval SOME_VAR=${SOME_VAR}"
  eval "set_SOME_VAR"
  echo "after eval SOME_VAR=${SOME_VAR}"
}

main "${@}" || exit 1
before eval SOME_VAR=some value
after eval SOME_VAR=some other value