Did you try list2env? Is it not enough for you?
https://stat.ethz.ch/R-manual/R-devel/library/base/html/list2env.html
Here's a mapply solution, which can be wrapped inside invisible:
mapply(function(name, value) assign(name, value, envir=globalenv()), names(datalist), datalist)
(not tested)