this code would work fine even if that caller assignment in list context is commmented out since caller works in list and scalar context as well.
Yes, it "works", but it does not return what is expected - the sum of the values passed in.
in the second code however, the problem arises since I am putting a subroutine call inside a subroutine of its own, and the same exact code is here in the book and the return value is supposed be so I am wondering if there is something different
caller works fine in subroutine chains, but the subroutines must be called, which you don't do in your "second code."
Try the following:
sub calling { $value = addem(2,2); } sub addem { ($value1, $value2) = @_; print join(",", caller 0); $value1+$value2; } # this is the missing piece to make the above output something. # call the subroutine! calling();
In reply to Re^3: getting a subroutine's name
by shmem
in thread getting a subroutine's name
by biohisham
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |