in reply to Re: How to tell if a function exists?
in thread How to tell if a function exists?

pg, thanks, very informative.

I gave it a try to play around. If I'm not mistaken, the second line in the test1.pl code should read:

my $a = \&apackage::process1; #process1 does not exist at this moment

This ability to reference a non-existent entity made me wonder, what would happen if you point to the "same" non-existent item twice, will those references be the same? So I gave the following a try:

my $b = \&apackage2::process2; my $c = \&apackage2::process2; my $d = \&apackage2::process3;
Upon running, as should be, $b and $c both contain the same reference (that is, they compare as equal and print the same reference address). $d is a reference to a different not-yet-existent entity.

When these entities do get defined - that is, the require is executed such that there is now a real, matching-name subroutine - the pointer address does not change. Also as should be, but interesting (for a newbie) to watch in action.

Andy

@_="the journeyman larry disciple keeps learning\n"=~/(.)/gs, print(map$_[$_-77],unpack(q=c*=,q@QSdM[]uRMNV^[ni_\[N]eki^y@))