If you want to play with call by name (or lazy evaluation)
you can implement it in perl by passing a reference to a subroutine:
FUNC1 (BY NAME A, BY REFERENCE B, BY VALUE C){...}
RESULT = FUNC1 (RAND (5), MYVARNAME1, 7)
can be implemented:
#!/usr/bin/perl
use strict;
use warnings FATAL => 'all';
sub funct1($$$);
my $myvarname1 = 42;
print "Calling funct1:\n";
funct1(sub { rand(5) }, \$myvarname1, 7);
sub funct1($$$) {
my ($A, $B, $C) = @_;
printf("1st: A+B+C = %f\n", &$A + $$B + $C);
printf("2nd: A+B+C = %f\n", &$A + $$B + $C);
}
--
Martin
Dr Martin Ward | Email: [email protected] | http://www.gkc.org.uk
G.K.Chesterton site: http://www.gkc.org.uk/gkc | Erdos number: 4