Hi,
I have a question on the best way to handle having multiple "web pages"
having a subroutine with the same name in it. I apologize in advance if I
use the wrong terminology. I know there are issues with library modules
(use, etc) and also global variables. I am assuming this is similar but
not sure the best way to handle.
Example:
test1.html
=====
#!/usr/bin/perl
testSub();
sub testSub
{
print "A";
}
test2.html
=====
#!/usr/bin/perl
testSub();
sub testSub
{
print "B";
}
If I run both of these over and over, ultimately I will start to see A's on
test2 and B's on test1, etc. I do know about a "counter" issue within the
same subroutine -- but this is slightly different (at least from the
outside).
One solution obviously has been to make sure I have a custom name for every
subroutine... but that can get messy to maintain and is not perfect.
My thoughts are:
* Is there a way, when calling "testSub" to say "only call the testSub
local to this file"?
* Is there a way, when defining "sub testSub" to force it to be locally
scoped? I believe the equivalent with variable is to say "our" rather than
"my"... but not sure how that would happen here.
I have not been able to find answers related to this specific issue -- only
to global variable issues and modules with conflicting names.
NOTE: I added "use warnings" but it did not provide any warning of this
issue.
Any help would be appreciated.
Thanks,
-John
I have a question on the best way to handle having multiple "web pages"
having a subroutine with the same name in it. I apologize in advance if I
use the wrong terminology. I know there are issues with library modules
(use, etc) and also global variables. I am assuming this is similar but
not sure the best way to handle.
Example:
test1.html
=====
#!/usr/bin/perl
testSub();
sub testSub
{
print "A";
}
test2.html
=====
#!/usr/bin/perl
testSub();
sub testSub
{
print "B";
}
If I run both of these over and over, ultimately I will start to see A's on
test2 and B's on test1, etc. I do know about a "counter" issue within the
same subroutine -- but this is slightly different (at least from the
outside).
One solution obviously has been to make sure I have a custom name for every
subroutine... but that can get messy to maintain and is not perfect.
My thoughts are:
* Is there a way, when calling "testSub" to say "only call the testSub
local to this file"?
* Is there a way, when defining "sub testSub" to force it to be locally
scoped? I believe the equivalent with variable is to say "our" rather than
"my"... but not sure how that would happen here.
I have not been able to find answers related to this specific issue -- only
to global variable issues and modules with conflicting names.
NOTE: I added "use warnings" but it did not provide any warning of this
issue.
Any help would be appreciated.
Thanks,
-John