in reply to
type glob problem
nagalenoj gave you the correct info; I'm just stating it another way. Your my @arra and your *arra are different and unrelated variables. The *arra is a package variable *main::arra which can, as a typeglob, refer to the variable @main::arra but that has nothing to do with a lexical, aka my, variable named @arra.
You are passing an empty typeglob to doublevalue.
This demonstrates that you are passing nothing, loosely speaking, to your function:
Update: With your code, use warnings; would have flagged that the name main::arra was used only once, hinting at the problem. With use diagnostics; the message is more confusing as if it were written before lexical variables were added to the language.
my @arra = (10,20);