I expect that the problem is not $wave_tcl_file, but rather is $all_shary_for_subs. I assume you are using threads::shared and $all_shary_for_subs is declared with :shared. As the docs say,
in reply to Error: Invalid value for shared scalar when assigning a scalar
Shared variables can only store scalars, refs of shared variables, or refs of shared data
Without seeing more information around your block, I would guess you are trying to store an anonymous hash in your shared variable.
#11929 First ask yourself `How would I do this without a computer?' Then have the computer do it the same way.