./example |{ while read x; do ... done; echo $hoge;}
のようにすれば、while の外に出ても {} の内側にいるかぎりは変数の値が見える。

以下のようにすればそもそもサブシェルが生成されないが、
何やってるのかひじょーにわかりにくいのでオススメはしない。
while read x; do ... done <<_EOF_
`./example`
_EOF_

bash 限定。
while read x; do ... done <<<"`./example`"