lets elaborate, in the following code you can see a simplified standard Perl class with private and public variables and methods.
The private data is only visible and accessible within the methods because of Perl's closure mechanism.
{ package TEST_CLASS; my $private_class_var; our $public_class_var; my $private_method = sub { my ($self,@args)=@_; print "-- private_method(@args)\n"; }; sub public_method { my ($self,@args)=@_; print "- public_method(@args)\n"; $self->$private_method(7..9); } sub new { my ($class,%args)=@_; bless \%args, $class; return \%args; } } my $obj = TEST_CLASS->new(a=>1,b=>2); $obj->public_method(1..3); $obj->private_method(4..6);
- public_method(1 2 3) -- private_method(7 8 9) Can't locate object method "private_method" via package "TEST_CLASS" a +t /tmp/tst_pkg.pl line 32.
So, does this count as real life example?
Cheers Rolf
In reply to Re^2: Real life uses for closures. (real life?)
by LanX
in thread Real life uses for closures.
by BrowserUk
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |