Beta Shell
v2.0 ยท web2.us.cloudlogin.co
[FM]
[CMD]
[PHP]
[DB]
[INFO]
[SEC]
File Manager
~
/
usr
/
share
/
perl5
/
vendor_perl
/
YAML
/
PP
/
Writer
Upload
3 items
Name
Size
Perms
Modified
Actions
[ .. / .. ]
File.pm
1.8 KB
-rw-r--r--
2020-09-10 22:43:06
Edit
Del
Editing: File.pm
(1.8 KB)
Path: /usr/share/perl5/vendor_perl/YAML/PP/Writer/File.pm
Back
use strict; use warnings; package YAML::PP::Writer::File; our $VERSION = '0.026'; # VERSION use Scalar::Util qw/ openhandle /; use base qw/ YAML::PP::Writer /; use Carp qw/ croak /; sub _open_handle { my ($self) = @_; if (openhandle($self->{output})) { $self->{filehandle} = $self->{output}; return $self->{output}; } open my $fh, '>:encoding(UTF-8)', $self->{output} or croak "Could not open '$self->{output}' for writing: $!"; $self->{filehandle} = $fh; return $fh; } sub write { my ($self, $line) = @_; my $fh = $self->{filehandle}; print $fh $line; } sub init { my ($self) = @_; my $fh = $self->_open_handle; } sub finish { my ($self) = @_; if (openhandle($self->{output})) { # Original argument was a file handle, so the caller needs # to close it return; } close $self->{filehandle}; } 1; __END__ =pod =encoding utf-8 =head1 NAME YAML::PP::Writer::File - Write YAML output to file or file handle =head1 SYNOPSIS my $writer = YAML::PP::Writer::File->new(output => $file); =head1 DESCRIPTION The L<YAML::PP::Emitter> sends its output to the writer. You can use your own writer. if you want to send the YAML output to somewhere else. See t/44.writer.t for an example. =head1 METHODS =over =item new my $writer = YAML::PP::Writer::File->new(output => $file); my $writer = YAML::PP::Writer::File->new(output => $filehandle); Constructor. =item write $writer->write('- '); =item init $writer->init; Initialize =item finish $writer->finish; Gets called when the output ends. If The argument was a filename, the filehandle will be closed. If the argument was a filehandle, the caller needs to close it. =item output, set_output Getter/setter for the YAML output =back =cut