in reply to Re: (tye)Re: Functions
in thread Functions
exit main( @ARGV ); { my $sub; BEGIN { $sub= sub { # ... }; } sub GlobalRoutine { &$sub( ... ); } } sub main { # ... }
It is easy to put this in places where the BEGIN block becomes necessary. Some are much more subtle than this. Without the BEGIN block, $sub is declared and GlobalRoutine is compiled before $sub is initialized so it then becomes possible for GlobalRoutine to be called while $sub is still undef.
I'm sorry that Perl doesn't have real static variables such that I have to resort to an extra empty block and doing the initialization in a BEGIN block. Note that this trick won't work if you are using mod_perl.
FYI, since I didn't use any local variables in the anonymous subroutine, it isn't a closure in my book.
- tye (but my friends call me "Tye")
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: (tye)Re2: Functions
by fgcr (Novice) on Jan 30, 2001 at 02:25 UTC | |
|
Re: (tye)Re2: Functions
by KM (Priest) on Jan 30, 2001 at 01:45 UTC | |
by tye (Sage) on Jan 30, 2001 at 02:03 UTC | |
by KM (Priest) on Jan 30, 2001 at 02:24 UTC | |
by tye (Sage) on Jan 30, 2001 at 02:42 UTC | |
by KM (Priest) on Jan 30, 2001 at 02:55 UTC |