use strict;
{
$IO::TieCombine::Scalar::VERSION = '1.002';
}
# ABSTRACT: tied scalars for IO::TieCombine
use Carp ();
sub TIESCALAR {
my ($class, $arg) = @_;
my $self = {
slot_name => $arg->{slot_name},
combined_ref => $arg->{combined_ref},
output_ref => $arg->{output_ref},
};
bless $self => $class;
}
sub FETCH {
return ${ $_[0]->{output_ref} }
}
sub STORE {
my ($self, $value) = @_;
my $class = ref $self;
my $output_ref = $self->{output_ref};
Carp::croak "you may only append, not reassign, a $class tie"
unless index($value, $$output_ref) == 0;
my $extra = substr $value, length $$output_ref, length $value;
${ $self->{combined_ref} } .= $extra;
return ${ $self->{output_ref} } = $value;
}
1;
__END__
=pod
=head1 NAME
IO::TieCombine::Scalar - tied scalars for IO::TieCombine
=head1 VERSION
version 1.002
=head1 AUTHOR
Ricardo SIGNES <rjbs@cpan.org>
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2012 by Ricardo SIGNES.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut