Roland Mainz wrote:
> Is there a way to return a compound variable value from a function
> without dismanteling each single value first (which would be very
> painfull in the case when the compound variable has hundreds or
> thousands of members which itself are compound variables (see
> http://opensolaris.pastebin.ca/raw/683236 for an example)) ?
> 
> I've tried the following example but it doesn't really work:
> -- snip --
> function g
> {
>     typeset x=(float x=1 y=2)
>     print $x
> }
> 
> typeset l=$(g)
> 
> print "${l.x}"
> -- snip --
> 
> The variable "l.x" is empty in this case.

It seems one possible solution may be to use "eval", e.g $ (function g {
typeset x=( typeset -lE x=1 y=2 ) ; print -- "$x" ; } ; eval "typeset
l=$(g)" ; print ${l.x}) # ... but I wish the use of "eval" could be
avoided (at least it copies the returned string twice instead of one
time and 2nd
http://mail.opensolaris.org/pipermail/shell-discuss/2007-June/000993.html
says "eval" should be avoided unless there is no other option (and I'm
not sure whether this is the case...)) ...

----

Bye,
Roland

-- 
  __ .  . __
 (o.\ \/ /.o) roland.mainz at nrubsig.org
  \__\/\/__/  MPEG specialist, C&&JAVA&&Sun&&Unix programmer
  /O /==\ O\  TEL +49 641 7950090
 (;O/ \/ \O;)

Reply via email to