State variable initialized to a function argument, my var, or expression generates bad code. For example:
sub banner {
state $my_log_dir=$_[0];
...
}
Generates:
banner_my_log_dir = _args[0]
While this code looks perfectly reasonable, it's generated BELOW the function definition, where the arguments are no longer available. Same issue if the state var is initialized with a 'my' var of the function. If the state var is initialized with an expression, the code doesn't even try to make it a state var.
State variable initialized to a function argument, my var, or expression generates bad code. For example:
Generates:
While this code looks perfectly reasonable, it's generated BELOW the function definition, where the arguments are no longer available. Same issue if the state var is initialized with a 'my' var of the function. If the state var is initialized with an expression, the code doesn't even try to make it a state var.