Aion-Fs
view release on metacpan or search on metacpan
lib/Aion/Fs/Lay.pm view on Meta::CPAN
package Aion::Fs::Lay;
use common::sense;
use overload fallback => 1,
'*{}' => sub { shift->{f} },
'-X' => \&_fileop,
'""' => sub { "lay<${\shift->{path}}>" },
;
sub new {
my $cls = shift;
bless {@_}, ref $cls || $cls
}
sub path { shift->{path} }
sub DESTROY {
my ($self) = @_;
close $self->{f};
}
my %OP;
sub _fileop {
my ($self, $op) = @_;
local $_ = $self->{f};
($OP{$op} //= eval "sub { -$op }" // die)->()
}
1;
__END__
=encoding utf-8
=head1 NAME
Aion::Fs::Lay - ÑайловÑй деÑкÑипÑÐ¾Ñ Ñ Ð°Ð²ÑозакÑÑÑием
=head1 SYNOPSIS
use Aion::Fs::Lay;
use Symbol;
my $file = "lay.test.txt";
my $f = Symbol::gensym;
open $f, ">", $file or die $!;
$f = Aion::Fs::Lay->new(f => $f, path => $file);
printf $f "%s!\n", "hi";
-s $f; # -> 0
my $std = select $f; $| = 1; select $std;
-s $f; # -> 4
$f->path; # => lay.test.txt
undef $f;
=head1 DESCRIPTION
СодеÑÐ¶Ð¸Ñ ÑайловÑй деÑкÑипÑоÑ, коÑоÑÑй закÑÑваеÑÑÑ Ð² деÑÑÑÑкÑоÑе. РблагодаÑÑ Ð¿ÐµÑегÑÑзке опеÑаÑоÑа C<*{}> ÑабоÑÐ°ÐµÑ Ñо вÑеми ÑайловÑми опеÑ...
ÐÑполÑзÑеÑÑÑ Ð² LL<https://metacpan.org/pod/Aion::Fs#ilay-(%3B%24path)>.
=head1 SUBROUTINES
=head2 new (%params)
ÐонÑÑÑÑкÑоÑ.
=head2 path ()
ÐÑÑÑ Ðº ÑайлÑ.
=head2 DESTROY ()
ÐеÑÑÑÑкÑоÑ. ÐакÑÑÐ²Ð°ÐµÑ ÑайловÑй деÑкÑипÑоÑ.
=head1 AUTHOR
Yaroslav O. Kosmina L<mailto:dart@cpan.org>
=head1 LICENSE
â B<GPLv3>
=head1 COPYRIGHT
The Aion::Fs::Lay module is copyright © 2025 Yaroslav O. Kosmina. Rusland. All rights reserved.
( run in 1.125 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )