my $coderef = sub {shift;};
my $val=$coderef->("Hello from down under");
sub doit{
print shift, $/;
}
&doit($val);
####
my $coderef = sub {shift;};
sub doit{
print shift, $/;
}
&doit($coderef->("Hello from down under"));
####
#Closured.pm
#!/usr/local/bin/perl -cw
use strict;
use warnings;
package Closured;
sub new{
our $self;
my $closure = sub {
shift;
if(@_){
$self = shift;
}
return $self;
};
bless $closure;
return $closure; #returning a codeRef instead
}
sub name{
&{$_[0]};
}
1;
####
#using the Closured class...
use strict;
use warnings;
use Closured;
my $object = Closured->new("Hisham"); #try to feed a constructor directly.
print $object,$/; #the constructor retruns a code ref.
print $object->name("BioHisham"), "\n"; #Feed via an instance method
####
#Output
Closured=CODE(0x18449ac)
BioHisham
####