LV
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
lib/LV/Backend/Tie.pm view on Meta::CPAN
use 5.006;
use strict;
use warnings;
package LV::Backend::Tie;
our $AUTHORITY = 'cpan:TOBYINK';
our $VERSION = '0.006';
sub lvalue :lvalue
{
my %args = @_;
tie(my $var, 'LV::Backend::Tie::TiedScalar', $args{get}, $args{set});
$var;
}
package LV::Backend::Tie::TiedScalar;
our $AUTHORITY = 'cpan:TOBYINK';
our $VERSION = '0.006';
our @CARP_NOT = qw( LV LV::Backend::Tie );
sub TIESCALAR
{
my $class = shift;
my ($get, $set) = @_;
unless ($set && $get)
{
my $caller = (caller(2))[3];
$get ||= sub { require Carp; Carp::croak("$caller is writeonly") };
$set ||= sub { require Carp; Carp::croak("$caller is readonly") };
}
bless [$get, $set] => $class;
}
sub FETCH
{
&{shift->[0]};
}
sub STORE
{
&{shift->[1]};
}
1;
view all matches for this distributionview release on metacpan - search on metacpan
( run in 2.307 seconds using v1.00-cache-2.02-grep-82fe00e-cpan-48ebf85a1963 )