my subroutine does NOT return a number.That is not true, according to the documentation for return, and as others in this thread have already pointed out:
(Note that in the absence of an explicit "return", a subroutine, eval, or do FILE will automatically return the value of the last expression evaluated.)This is why moritz correctly pointed out that your sub is indeed returning a value, and it even might be numeric (0).
Consider the following contrived example:
#!/usr/bin/env perl use warnings; use strict; my $result; $result = foo(); print "result=$result\n"; $result = bar(); print "result=$result\n"; sub foo {print "foo: "} sub bar {print "bar: "; chdir '/nodir'}
This prints:
foo: result=1 bar: result=0
sub "foo" returns the result of the successful print command, and sub "bar" returns the result of the unsuccessful chdir command.
In reply to Re^3: &process or die
by toolic
in thread &process or die
by steph_bow
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |