Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: how to force scalar to be an array?



Hi Bart,

> What I meant was:
> 
> 	words=( $=result )
> 	print $words[1]
Ah!  Thanks so much once again for your help.

> You can even do it in one expression:
> 
> 	print ${${(A)=words::=$result}[1]}
Cool.  But hard to read.

> You'd also think that the (@) flag would fix that, but it only
> *preserves* array-ness in the transition from inner to outer nested
> expansions, it doesn't *create* array-ness from a scalar.
Yep, I did think that.  So maybe your suggestion below would be worth
discussion on zsh-workers. :-)

> The latter might be something we could consider changing without much risk
> of breaking anything.

> You can do that latter one in zsh, too, if you have extendedglob set:
> 
> 	: ${result//(#b)([^[:space:]]#)(*)/}
> 	print -l $match[1] $match[2]
Uffda, gotta go back and read more of the zsh manual.

Thanks again, I really appreciate your help!
 Andy.

-- 
                              o      _     _         _
  ------- __o       __o      /\_   _ \\o  (_)\__/o  (_)          -o)
  ----- _`\<,_    _`\<,_    _>(_) (_)/<_    \_| \   _|/' \/       /\\
  ---- (_)/ (_)  (_)/ (_)  (_)        (_)   (_)    (_)'  _\o_    _\_v
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 Life is like a box of chocolates.
 You never know what you get.  (Forrest Gump, 1994)



Messages sorted by: Reverse Date, Date, Thread, Author