From: Chris Spurgeon <[EMAIL PROTECTED]>
> I have this code snippet...
> print <<END_OF_STUFF;
>
> I think x is $x and y is $y.
> &foobar
> Did the subroutine fire?
>
> END_OF_STUFF
>
>
> When I run it, the scalar variables $x and $y are interpreted in the print
> statement, but the subroutine doesn't fire. Is there a way to trigger a
> subroutine from within a print << statement?
While it's possible to use the @{} hack I think it's nicer to
use Interpolation;
Especialy if you want to pass some parameters to the function
See http://jenda.krynicky.cz/#Interpolation
For example, you can say
use Interpolation money => 'commify',
E => 'eval',
placename => 'ucwords',
uc => sub{ uc($_[0]) },
;
And then you can write these:
print "3 + 4 = $E{3+4}";
# Prints ``3 + 4 = 7''
$SALARY = 57500;
print "The salary is \$$money{$SALARY}";
# Prints ``The salary is $57,500.00''
$PLACE1 = 'SAN BERNADINO HIGH SCHOOL';
$PLACE2 = 'n.y. state';
print "$placename{$PLACE1} is not near $placename{$PLACE2}";
# Prints ``San Bernadino High School is not near N.Y. State";
$fieldname = "LastName";
print "Field name is: $uc{$fieldname}\n";
# Prints ``Field name is: LASTNAME"
Jenda
=========== [EMAIL PROTECTED] == http://Jenda.Krynicky.cz ==========
There is a reason for living. There must be. I've seen it somewhere.
It's just that in the mess on my table ... and in my brain.
I can't find it.
--- me
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]