but using the global namespace for an inner function is somehow dangerous. What if you call an external function within outer, that tries to call a completely different function also called inner()?
First, there's no such thing as the global namespace. The code uses the current namespace.
Secondly, are you seriously complaining that a script can't have two functions with the same name? Or did you mean to test something like
use strict; use warnings; $\ = "\n"; sub outer2 { local *inner = sub { print "inner_of_outer2" }; inner(); } sub outer1 { local *inner = sub { print "inner_of_outer1" }; inner(); outer2(); } outer1();
Unfortunately, that gives a warning.
inner_of_outer1 Subroutine main::inner redefined at script.pl line 7. inner_of_outer2
In reply to Re^5: sub fuction inside sub functioin?
by ikegami
in thread sub fuction inside sub functioin?
by deewanagan
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |