[   { my $staticvar; sub mysub {...} }    versus   sub mysub {static
$staticvar;}   ]

Abigail and others point that the first version is more flexible than the
second one, which is true. Reason: the first construct allows subs to share
the statics. On the other hand, there is a psychological advantage to the
second version, which would let me prefere it where possible if there was a
"static" construct:

I think is contra-intuitive for many programmers anyway: I am trained to
consider everything within curly braces as invisible from the outside. So it
becomes less clear in the first version that mysub is in fact global to the
program.

Is there a sensible way of combining the advantages, that is: defining subs
outside of blocks that share static variables anyway? Whatever I can think
of would be even worse than version one (more complicated, less intuitive,
more error-prone), so has anyone else thought of a concept? 

Joachim

Reply via email to