Yes, evalq() or local(), e.g.
$ R --vanilla --quiet
> attach(list(), name = "raw")
> local(envir = as.environment("raw"), {
a <- 5
})
> ls(pos = "raw")
[1] "a"
> ls()
character(0)
However, as expected, 'a' is on the search path because we used attach();
> a
[1] 5
so, it depends on what you're trying to achieve.