As the saying goes, "Forever live, forever learn." (I'm not entirely sure if
the wording is right, though ;). Even having reached the level of saint, doesn't
imply that one is a trully accomplished all-knowing Perl hacker. From time to time,
things that I find hard to explain do happen.
Just today, I was coding away happily until I came upon an error message saying
Can't locate object method "try" via package FOO
(note: FOO is a hypothetical package.. ).
When I looked at the code, I noticed that I really wanted to have 'eval' instead
of 'try' there. So, I made the correction and went on. However, immediately,
I thought "Home come Perl was looking for method 'try' in package FOO?". Indeed,
could anyone explain to me the 'magic' (if only there's anything 'magical' about it :)
behind this? How is it possible to invoke a package method like in the code
provided below?:
use strict;
package FOO;
sub new {};
sub try {
print "Trying...?\n";
}
package main;
try {
new FOO;
};
And the output, of course, is:
Trying...?
I appreciate your help ;).
_____________________
# Under Construction