No, that's correct.
our is a scoped name-space global and your string is evaluated in a different scope. You can either put another our in the eval string or name the package in it (ie,
print $main::somevar, in which case you don't even need the our).