diff options
Diffstat (limited to 'Data-YAML-0.0.6/blib')
-rw-r--r-- | Data-YAML-0.0.6/blib/arch/.exists | 0 | ||||
-rw-r--r-- | Data-YAML-0.0.6/blib/arch/auto/Data/YAML/.exists | 0 | ||||
-rw-r--r-- | Data-YAML-0.0.6/blib/bin/.exists | 0 | ||||
-rw-r--r-- | Data-YAML-0.0.6/blib/lib/Data/.exists | 0 | ||||
-rw-r--r-- | Data-YAML-0.0.6/blib/lib/Data/YAML.pm | 145 | ||||
-rw-r--r-- | Data-YAML-0.0.6/blib/lib/Data/YAML/Reader.pm | 422 | ||||
-rw-r--r-- | Data-YAML-0.0.6/blib/lib/Data/YAML/Writer.pm | 269 | ||||
-rw-r--r-- | Data-YAML-0.0.6/blib/lib/auto/Data/YAML/.exists | 0 | ||||
-rw-r--r-- | Data-YAML-0.0.6/blib/man1/.exists | 0 | ||||
-rw-r--r-- | Data-YAML-0.0.6/blib/man3/.exists | 0 | ||||
-rw-r--r-- | Data-YAML-0.0.6/blib/man3/Data::YAML.3pm | 264 | ||||
-rw-r--r-- | Data-YAML-0.0.6/blib/man3/Data::YAML::Reader.3pm | 243 | ||||
-rw-r--r-- | Data-YAML-0.0.6/blib/man3/Data::YAML::Writer.3pm | 261 | ||||
-rw-r--r-- | Data-YAML-0.0.6/blib/script/.exists | 0 |
14 files changed, 1604 insertions, 0 deletions
diff --git a/Data-YAML-0.0.6/blib/arch/.exists b/Data-YAML-0.0.6/blib/arch/.exists new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/Data-YAML-0.0.6/blib/arch/.exists diff --git a/Data-YAML-0.0.6/blib/arch/auto/Data/YAML/.exists b/Data-YAML-0.0.6/blib/arch/auto/Data/YAML/.exists new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/Data-YAML-0.0.6/blib/arch/auto/Data/YAML/.exists diff --git a/Data-YAML-0.0.6/blib/bin/.exists b/Data-YAML-0.0.6/blib/bin/.exists new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/Data-YAML-0.0.6/blib/bin/.exists diff --git a/Data-YAML-0.0.6/blib/lib/Data/.exists b/Data-YAML-0.0.6/blib/lib/Data/.exists new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/Data-YAML-0.0.6/blib/lib/Data/.exists diff --git a/Data-YAML-0.0.6/blib/lib/Data/YAML.pm b/Data-YAML-0.0.6/blib/lib/Data/YAML.pm new file mode 100644 index 0000000..dd6716b --- /dev/null +++ b/Data-YAML-0.0.6/blib/lib/Data/YAML.pm @@ -0,0 +1,145 @@ +package Data::YAML; + +use strict; +use warnings; + +use vars qw{$VERSION}; + +$VERSION = '0.0.6'; + +1; + +__END__ + +=head1 NAME + +Data::YAML - Easy YAML serialisation of Perl data structures + +=head1 VERSION + +This document describes Data::YAML version 0.0.6 + +=head1 DESCRIPTION + +In the spirit of L<YAML::Tiny>, L<Data::YAML::Reader> and +L<Data::YAML::Writer> provide lightweight, dependency-free YAML +handling. While C<YAML::Tiny> is designed principally for working with +configuration files C<Data::YAML> concentrates on the transparent round- +tripping of YAML serialized Perl data structures. + +As an example of why this distinction matters consider that +C<YAML::Tiny> doesn't handle hashes with keys containing non-printable +characters. This is fine for configuration files but likely to cause +problems when handling arbitrary Perl data structures. C<Data::YAML> +handles exotic hash keys correctly. + +The syntax accepted by C<Data::YAML> is a subset of YAML. Specifically +it is the same subset of YAML that L<Data::YAML::Writer> produces. See +L<Data::YAML> for more information. + +=head2 YAML syntax + +Although YAML appears to be a simple language the entire YAML +specification is huge. C<Data::YAML> implements a small subset of the +complete syntax trading completeness for compactness and simplicity. +This restricted syntax is known (to me at least) as 'YAMLish'. + +These examples demonstrates the full range of supported syntax. + +All YAML documents must begin with '---' and end with a line +containing '...'. + + --- Simple scalar + ... + +Unprintable characters are represented using standard escapes in double +quoted strings. + + --- "\t\x01\x02\n" + ... + +Array and hashes are represented thusly + + --- + - "This" + - "is" + - "an" + - "array" + ... + + --- + This: is + a: hash + ... + +Structures may nest arbitrarily + + --- + - + name: 'Hash one' + value: 1 + - + name: 'Hash two' + value: 2 + ... + +Undef is a tilde + + --- ~ + ... + +=head2 Uses + +Use C<Data::YAML> may be used any time you need to freeze and thaw Perl +data structures into a human readable format. The output from +C<Data::YAML::Writer> should be readable by any YAML parser. + +C<Data::YAML> was originally written to allow machine-readable +diagnostic information to be passed from test scripts to +L<TAP::Harness>. That means that if you're writing a testing system that +needs to output TAP version 13 or later syntax you might find +C<Data::YAML> useful. + +Read more about TAP and YAMLish here: L<http://testanything.org/wiki> + +=head1 BUGS AND LIMITATIONS + +No bugs have been reported. + +Please report any bugs or feature requests to +C<data-yaml@rt.cpan.org>, or through the web interface at +L<http://rt.cpan.org>. + +=head1 AUTHOR + +Andy Armstrong C<< <andy@hexten.net> >> + +=head1 LICENCE AND COPYRIGHT + +Copyright (c) 2007, Andy Armstrong C<< <andy@hexten.net> >>. All rights reserved. + +This module is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. See L<perlartistic>. + +=head1 DISCLAIMER OF WARRANTY + +BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER +EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE +ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH +YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL +NECESSARY SERVICING, REPAIR, OR CORRECTION. + +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE SOFTWARE AS PERMITTED BY THE ABOVE LICENCE, BE +LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL, +OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE +THE SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. diff --git a/Data-YAML-0.0.6/blib/lib/Data/YAML/Reader.pm b/Data-YAML-0.0.6/blib/lib/Data/YAML/Reader.pm new file mode 100644 index 0000000..dbd5189 --- /dev/null +++ b/Data-YAML-0.0.6/blib/lib/Data/YAML/Reader.pm @@ -0,0 +1,422 @@ +package Data::YAML::Reader; + +use strict; +use warnings; +use Carp; + +use vars qw{$VERSION}; + +$VERSION = '0.0.6'; + +# TODO: +# Handle blessed object syntax + +# Printable characters for escapes +my %UNESCAPES = ( + z => "\x00", + a => "\x07", + t => "\x09", + n => "\x0a", + v => "\x0b", + f => "\x0c", + r => "\x0d", + e => "\x1b", + '\\' => '\\', +); + +my $QQ_STRING = qr{ " (?:\\. | [^"])* " }x; +my $HASH_LINE = qr{ ^ ($QQ_STRING|\S+) \s* : (?: \s+ (.+?) \s* )? $ }x; +my $IS_HASH_KEY = qr{ ^ [\w\'\"] }x; +my $IS_END_YAML = qr{ ^ [.][.][.] \s* $ }x; +my $IS_QQ_STRING = qr{ ^ $QQ_STRING $ }x; + +# Create an empty Data::YAML::Reader object +sub new { + my $class = shift; + bless {}, $class; +} + +sub _make_reader { + my $self = shift; + my $obj = shift; + + croak "Must have something to read from" + unless defined $obj; + + if ( my $ref = ref $obj ) { + if ( 'CODE' eq $ref ) { + return $obj; + } + elsif ( 'ARRAY' eq $ref ) { + return sub { shift @$obj }; + } + elsif ( 'SCALAR' eq $ref ) { + return $self->_make_reader( $$obj ); + } + elsif ( 'GLOB' eq $ref || 'IO::Handle' eq $ref ) { + return sub { + my $line = <$obj>; + chomp $line if defined $line; + return $line; + }; + } + croak "Don't know how to read $ref"; + } + else { + my @lines = split( /\n/, $obj ); + return sub { shift @lines }; + } +} + +sub read { + my $self = shift; + my $obj = shift; + + $self->{reader} = $self->_make_reader( $obj ); + $self->{capture} = []; + + # Prime the reader + $self->_next; + + my $doc = $self->_read; + + # The terminator is mandatory otherwise we'd consume a line from the + # iterator that doesn't belong to us. If we want to remove this + # restriction we'll have to implement look-ahead in the iterators. + # Which might not be a bad idea. + my $dots = $self->_peek; + croak "Missing '...' at end of YAML" + unless $dots =~ $IS_END_YAML; + + delete $self->{reader}; + delete $self->{next}; + + return $doc; +} + +sub get_raw { + my $self = shift; + + if ( defined( my $capture = $self->{capture} ) ) { + return join( "\n", @$capture ) . "\n"; + } + + return ''; +} + +sub _peek { + my $self = shift; + return $self->{next} unless wantarray; + my $line = $self->{next}; + $line =~ /^ (\s*) (.*) $ /x; + return ( $2, length $1 ); +} + +sub _next { + my $self = shift; + croak "_next called with no reader" + unless $self->{reader}; + my $line = $self->{reader}->(); + $self->{next} = $line; + push @{ $self->{capture} }, $line; +} + +sub _read { + my $self = shift; + + my $line = $self->_peek; + + # Do we have a document header? + if ( $line =~ /^ --- (?: \s* (.+?) \s* )? $/x ) { + $self->_next; + + return $self->_read_scalar( $1 ) if defined $1; # Inline? + + my ( $next, $indent ) = $self->_peek; + + if ( $next =~ /^ - /x ) { + return $self->_read_array( $indent ); + } + elsif ( $next =~ $IS_HASH_KEY ) { + return $self->_read_hash( $next, $indent ); + } + elsif ( $next =~ $IS_END_YAML ) { + croak "Premature end of YAML"; + } + else { + croak "Unsupported YAML syntax: '$next'"; + } + } + else { + croak "YAML document header not found"; + } +} + +# Parse a double quoted string +sub _read_qq { + my $self = shift; + my $str = shift; + + unless ( $str =~ s/^ " (.*?) " $/$1/x ) { + die "Internal: not a quoted string"; + } + + $str =~ s/\\"/"/gx; + $str =~ s/ \\ ( [tartan\\favez] | x([0-9a-fA-F]{2}) ) + / (length($1) > 1) ? pack("H2", $2) : $UNESCAPES{$1} /gex; + return $str; +} + +# Parse a scalar string to the actual scalar +sub _read_scalar { + my $self = shift; + my $string = shift; + + return undef if $string eq '~'; + + if ( $string eq '>' || $string eq '|' ) { + + my ( $line, $indent ) = $self->_peek; + die "Multi-line scalar content missing" unless defined $line; + + my @multiline = ( $line ); + + while ( 1 ) { + $self->_next; + my ( $next, $ind ) = $self->_peek; + last if $ind < $indent; + push @multiline, $next; + } + + return join( ( $string eq '>' ? ' ' : "\n" ), @multiline ) . "\n"; + } + + if ( $string =~ /^ ' (.*) ' $/x ) { + ( my $rv = $1 ) =~ s/''/'/g; + return $rv; + } + + if ( $string =~ $IS_QQ_STRING ) { + return $self->_read_qq( $string ); + } + + if ( $string =~ /^['"]/ ) { + + # A quote with folding... we don't support that + die __PACKAGE__ . " does not support multi-line quoted scalars"; + } + + # Regular unquoted string + return $string; +} + +sub _read_nested { + my $self = shift; + + my ( $line, $indent ) = $self->_peek; + + if ( $line =~ /^ -/x ) { + return $self->_read_array( $indent ); + } + elsif ( $line =~ $IS_HASH_KEY ) { + return $self->_read_hash( $line, $indent ); + } + else { + croak "Unsupported YAML syntax: '$line'"; + } +} + +# Parse an array +sub _read_array { + my ( $self, $limit ) = @_; + + my $ar = []; + + while ( 1 ) { + my ( $line, $indent ) = $self->_peek; + last if $indent < $limit || !defined $line || $line =~ $IS_END_YAML; + + if ( $indent > $limit ) { + croak "Array line over-indented"; + } + + if ( $line =~ /^ (- \s+) \S+ \s* : (?: \s+ | $ ) /x ) { + $indent += length $1; + $line =~ s/-\s+//; + push @$ar, $self->_read_hash( $line, $indent ); + } + elsif ( $line =~ /^ - \s* (.+?) \s* $/x ) { + croak "Unexpected start of YAML" if $line =~ /^---/; + $self->_next; + push @$ar, $self->_read_scalar( $1 ); + } + elsif ( $line =~ /^ - \s* $/x ) { + $self->_next; + push @$ar, $self->_read_nested; + } + elsif ( $line =~ $IS_HASH_KEY ) { + $self->_next; + push @$ar, $self->_read_hash( $line, $indent, ); + } + else { + croak "Unsupported YAML syntax: '$line'"; + } + } + + return $ar; +} + +sub _read_hash { + my ( $self, $line, $limit ) = @_; + + my $indent; + my $hash = {}; + + while ( 1 ) { + croak "Badly formed hash line: '$line'" + unless $line =~ $HASH_LINE; + + my ( $key, $value ) = ( $self->_read_scalar( $1 ), $2 ); + $self->_next; + + if ( defined $value ) { + $hash->{$key} = $self->_read_scalar( $value ); + } + else { + $hash->{$key} = $self->_read_nested; + } + + ( $line, $indent ) = $self->_peek; + last if $indent < $limit || !defined $line || $line =~ $IS_END_YAML; + } + + return $hash; +} + +1; + +__END__ + +=head1 NAME + +Data::YAML::Reader - Parse YAML created by Data::YAML::Writer + +=head1 VERSION + +This document describes Data::YAML::Reader version 0.0.6 + +=head1 SYNOPSIS + + use Data::YAML::Reader; + + my $yr = Data::YAML::Reader->new; + + # Read from an array... + my $from_array = $yr->read( \@some_array ); + + # ...an open file handle... + my $from_handle = $yr->read( $some_file ); + + # ...a string containing YAML... + my $from_string = $yr->read( $some_string ); + + # ...or a closure + my $from_code = $yr->read( sub { return get_next_line() } ); + +=head1 DESCRIPTION + +In the spirit of L<YAML::Tiny> this is a lightweight, dependency-free +YAML reader. While C<YAML::Tiny> is designed principally for working +with configuration files C<Data::YAML> concentrates on the transparent +round-tripping of YAML serialized Perl data structures. + +The syntax accepted by C<Data::YAML::Reader> is a subset of YAML. +Specifically it is the same subset of YAML that L<Data::YAML::Writer> +produces. See L<Data::YAML> for more information. + +=head1 INTERFACE + +=over + +=item C<< new >> + +Creates and returns an empty C<Data::YAML::Reader> object. No options may be passed. + +=item C<< read( $source ) >> + +Read YAML and return the data structure it represents. The YAML data may be supplied by a + +=over + +=item * scalar string containing YAML source + +=item * the handle of an open file + +=item * a reference to an array of lines + +=item * a code reference + +=back + +In the case of a code reference a subroutine (most likely a closure) +that returns successive lines of YAML must be supplied. Lines should +have no trailing newline. When the YAML is exhausted the subroutine must +return undef. + +Returns the data structure (specifically either a scalar, hash ref or +array ref) that results from decoding the YAML. + +=item C<< get_raw >> + +Return the raw YAML source from the most recent C<read>. + +=back + +=head1 BUGS AND LIMITATIONS + +No bugs have been reported. + +Please report any bugs or feature requests to +C<data-yaml@rt.cpan.org>, or through the web interface at +L<http://rt.cpan.org>. + +=head1 SEE ALSO + +L<YAML::Tiny>, L<YAML>, L<YAML::Syck>, L<Config::Tiny>, L<CSS::Tiny> + +=head1 AUTHOR + +Andy Armstrong C<< <andy@hexten.net> >> + +Adam Kennedy wrote L<YAML::Tiny> which provided the template and many of +the YAML matching regular expressions for this module. + +=head1 LICENCE AND COPYRIGHT + +Copyright (c) 2007, Andy Armstrong C<< <andy@hexten.net> >>. All rights reserved. + +This module is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. See L<perlartistic>. + +=head1 DISCLAIMER OF WARRANTY + +BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER +EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE +ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH +YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL +NECESSARY SERVICING, REPAIR, OR CORRECTION. + +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE SOFTWARE AS PERMITTED BY THE ABOVE LICENCE, BE +LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL, +OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE +THE SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. diff --git a/Data-YAML-0.0.6/blib/lib/Data/YAML/Writer.pm b/Data-YAML-0.0.6/blib/lib/Data/YAML/Writer.pm new file mode 100644 index 0000000..abce670 --- /dev/null +++ b/Data-YAML-0.0.6/blib/lib/Data/YAML/Writer.pm @@ -0,0 +1,269 @@ +package Data::YAML::Writer; + +use strict; +use warnings; +use Carp; + +use vars qw{$VERSION}; + +$VERSION = '0.0.6'; + +my $ESCAPE_CHAR = qr{ [\x00-\x1f\"] }x; + +my @UNPRINTABLE = qw( + z x01 x02 x03 x04 x05 x06 a + x08 t n v f r x0e x0f + x10 x11 x12 x13 x14 x15 x16 x17 + x18 x19 x1a e x1c x1d x1e x1f +); + +# Create an empty Data::YAML::Writer object +sub new { + my $class = shift; + bless {}, $class; +} + +sub write { + my $self = shift; + + croak "Need something to write" + unless @_; + + my $obj = shift; + my $out = shift || \*STDOUT; + + croak "Need a reference to something I can write to" + unless ref $out; + + $self->{writer} = $self->_make_writer( $out ); + + $self->_write_obj( '---', $obj ); + $self->_put( '...' ); + + delete $self->{writer}; +} + +sub _make_writer { + my $self = shift; + my $out = shift; + + my $ref = ref $out; + + if ( 'CODE' eq $ref ) { + return $out; + } + elsif ( 'ARRAY' eq $ref ) { + return sub { push @$out, shift }; + } + elsif ( 'SCALAR' eq $ref ) { + return sub { $$out .= shift() . "\n" }; + } + elsif ( 'GLOB' eq $ref || 'IO::Handle' eq $ref ) { + return sub { print $out shift(), "\n" }; + } + + croak "Can't write to $out"; +} + +sub _put { + my $self = shift; + $self->{writer}->( join '', @_ ); +} + +sub _enc_scalar { + my $self = shift; + my $val = shift; + + return '~' unless defined $val; + + if ( $val =~ /$ESCAPE_CHAR/ ) { + $val =~ s/\\/\\\\/g; + $val =~ s/"/\\"/g; + $val =~ s/ ( [\x00-\x1f] ) / '\\' . $UNPRINTABLE[ ord($1) ] /gex; + return qq{"$val"}; + } + + if ( length( $val ) == 0 or $val =~ /\s/ ) { + $val =~ s/'/''/; + return "'$val'"; + } + + return $val; +} + +sub _write_obj { + my $self = shift; + my $prefix = shift; + my $obj = shift; + my $indent = shift || 0; + + if ( my $ref = ref $obj ) { + my $pad = ' ' x $indent; + $self->_put( $prefix ); + if ( 'HASH' eq $ref ) { + for my $key ( sort keys %$obj ) { + my $value = $obj->{$key}; + $self->_write_obj( $pad . $self->_enc_scalar( $key ) . ':', + $value, $indent + 1 ); + } + } + elsif ( 'ARRAY' eq $ref ) { + for my $value ( @$obj ) { + $self->_write_obj( $pad . '-', $value, $indent + 1 ); + } + } + else { + croak "Don't know how to encode $ref"; + } + } + else { + $self->_put( $prefix, ' ', $self->_enc_scalar( $obj ) ); + } +} + +1; + +__END__ + + +=head1 NAME + +Data::YAML::Writer - Easy YAML serialisation + +=head1 VERSION + +This document describes Data::YAML::Writer version 0.0.6 + +=head1 SYNOPSIS + + use Data::YAML::Writer; + + my $data = { + one => 1, + two => 2, + three => [ 1, 2, 3 ], + }; + + my $yw = Data::YAML::Writer->new; + + # Write to an array... + $yw->write( $data, \@some_array ); + + # ...an open file handle... + $yw->write( $data, $some_file_handle ); + + # ...a string ... + $yw->write( $data, \$some_string ); + + # ...or a closure + $yw->write( $data, sub { + my $line = shift; + print "$line\n"; + } ); + + +=head1 DESCRIPTION + +Encodes a scalar, hash reference or array reference as YAML. + +In the spirit of L<YAML::Tiny> this is a lightweight, dependency-free +YAML writer. While C<YAML::Tiny> is designed principally for working +with configuration files C<Data::YAML> concentrates on the transparent +round-tripping of YAML serialized Perl data structures. + +The syntax produced by C<Data::YAML::Writer> is a subset of YAML. +Specifically it is the same subset of YAML that L<Data::YAML::Reader> +consumes. See L<Data::YAML> for more information. + +=head1 INTERFACE + +=over + +=item C<< new >> + +The constructor C<new> creates and returns an empty C<Data::YAML::Writer> object. + +=item C<< write( $obj, $output ) >> + +Encode a scalar, hash reference or array reference as YAML. + + my $writer = sub { + my $line = shift; + print SOMEFILE "$line\n"; + }; + + my $data = { + one => 1, + two => 2, + three => [ 1, 2, 3 ], + }; + + my $yw = Data::YAML::Writer->new; + $yw->write( $data, $writer ); + + +The C< $output > argument may be + +=over + +=item * a reference to a scalar to append YAML to + +=item * the handle of an open file + +=item * a reference to an array into which YAML will be pushed + +=item * a code reference + +=back + +If you supply a code reference the subroutine will be called once for +each line of output with the line as its only argument. Passed lines +will have no trailing newline. + +=back + +=head1 BUGS AND LIMITATIONS + +No bugs have been reported. + +Please report any bugs or feature requests to +C<data-yaml@rt.cpan.org>, or through the web interface at +L<http://rt.cpan.org>. + +=head1 SEE ALSO + +L<YAML::Tiny>, L<YAML>, L<YAML::Syck>, L<Config::Tiny>, L<CSS::Tiny> + +=head1 AUTHOR + +Andy Armstrong C<< <andy@hexten.net> >> + +=head1 LICENCE AND COPYRIGHT + +Copyright (c) 2007, Andy Armstrong C<< <andy@hexten.net> >>. All rights reserved. + +This module is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. See L<perlartistic>. + +=head1 DISCLAIMER OF WARRANTY + +BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER +EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE +ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH +YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL +NECESSARY SERVICING, REPAIR, OR CORRECTION. + +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE SOFTWARE AS PERMITTED BY THE ABOVE LICENCE, BE +LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL, +OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE +THE SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. diff --git a/Data-YAML-0.0.6/blib/lib/auto/Data/YAML/.exists b/Data-YAML-0.0.6/blib/lib/auto/Data/YAML/.exists new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/Data-YAML-0.0.6/blib/lib/auto/Data/YAML/.exists diff --git a/Data-YAML-0.0.6/blib/man1/.exists b/Data-YAML-0.0.6/blib/man1/.exists new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/Data-YAML-0.0.6/blib/man1/.exists diff --git a/Data-YAML-0.0.6/blib/man3/.exists b/Data-YAML-0.0.6/blib/man3/.exists new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/Data-YAML-0.0.6/blib/man3/.exists diff --git a/Data-YAML-0.0.6/blib/man3/Data::YAML.3pm b/Data-YAML-0.0.6/blib/man3/Data::YAML.3pm new file mode 100644 index 0000000..b0f422d --- /dev/null +++ b/Data-YAML-0.0.6/blib/man3/Data::YAML.3pm @@ -0,0 +1,264 @@ +.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.13) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.ie \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. nr % 0 +. rr F +.\} +.el \{\ +. de IX +.. +.\} +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "Data::YAML 3" +.TH Data::YAML 3 "2009-03-08" "perl v5.10.1" "User Contributed Perl Documentation" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH "NAME" +Data::YAML \- Easy YAML serialisation of Perl data structures +.SH "VERSION" +.IX Header "VERSION" +This document describes Data::YAML version 0.0.6 +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +In the spirit of YAML::Tiny, Data::YAML::Reader and +Data::YAML::Writer provide lightweight, dependency-free \s-1YAML\s0 +handling. While \f(CW\*(C`YAML::Tiny\*(C'\fR is designed principally for working with +configuration files \f(CW\*(C`Data::YAML\*(C'\fR concentrates on the transparent round\- +tripping of \s-1YAML\s0 serialized Perl data structures. +.PP +As an example of why this distinction matters consider that +\&\f(CW\*(C`YAML::Tiny\*(C'\fR doesn't handle hashes with keys containing non-printable +characters. This is fine for configuration files but likely to cause +problems when handling arbitrary Perl data structures. \f(CW\*(C`Data::YAML\*(C'\fR +handles exotic hash keys correctly. +.PP +The syntax accepted by \f(CW\*(C`Data::YAML\*(C'\fR is a subset of \s-1YAML\s0. Specifically +it is the same subset of \s-1YAML\s0 that Data::YAML::Writer produces. See +Data::YAML for more information. +.SS "\s-1YAML\s0 syntax" +.IX Subsection "YAML syntax" +Although \s-1YAML\s0 appears to be a simple language the entire \s-1YAML\s0 +specification is huge. \f(CW\*(C`Data::YAML\*(C'\fR implements a small subset of the +complete syntax trading completeness for compactness and simplicity. +This restricted syntax is known (to me at least) as 'YAMLish'. +.PP +These examples demonstrates the full range of supported syntax. +.PP +All \s-1YAML\s0 documents must begin with '\-\-\-' and end with a line +containing '...'. +.PP +.Vb 2 +\& \-\-\- Simple scalar +\& ... +.Ve +.PP +Unprintable characters are represented using standard escapes in double +quoted strings. +.PP +.Vb 2 +\& \-\-\- "\et\ex01\ex02\en" +\& ... +.Ve +.PP +Array and hashes are represented thusly +.PP +.Vb 6 +\& \-\-\- +\& \- "This" +\& \- "is" +\& \- "an" +\& \- "array" +\& ... +\& +\& \-\-\- +\& This: is +\& a: hash +\& ... +.Ve +.PP +Structures may nest arbitrarily +.PP +.Vb 8 +\& \-\-\- +\& \- +\& name: \*(AqHash one\*(Aq +\& value: 1 +\& \- +\& name: \*(AqHash two\*(Aq +\& value: 2 +\& ... +.Ve +.PP +Undef is a tilde +.PP +.Vb 2 +\& \-\-\- ~ +\& ... +.Ve +.SS "Uses" +.IX Subsection "Uses" +Use \f(CW\*(C`Data::YAML\*(C'\fR may be used any time you need to freeze and thaw Perl +data structures into a human readable format. The output from +\&\f(CW\*(C`Data::YAML::Writer\*(C'\fR should be readable by any \s-1YAML\s0 parser. +.PP +\&\f(CW\*(C`Data::YAML\*(C'\fR was originally written to allow machine-readable +diagnostic information to be passed from test scripts to +TAP::Harness. That means that if you're writing a testing system that +needs to output \s-1TAP\s0 version 13 or later syntax you might find +\&\f(CW\*(C`Data::YAML\*(C'\fR useful. +.PP +Read more about \s-1TAP\s0 and YAMLish here: <http://testanything.org/wiki> +.SH "BUGS AND LIMITATIONS" +.IX Header "BUGS AND LIMITATIONS" +No bugs have been reported. +.PP +Please report any bugs or feature requests to +\&\f(CW\*(C`data\-yaml@rt.cpan.org\*(C'\fR, or through the web interface at +<http://rt.cpan.org>. +.SH "AUTHOR" +.IX Header "AUTHOR" +Andy Armstrong \f(CW\*(C`<andy@hexten.net>\*(C'\fR +.SH "LICENCE AND COPYRIGHT" +.IX Header "LICENCE AND COPYRIGHT" +Copyright (c) 2007, Andy Armstrong \f(CW\*(C`<andy@hexten.net>\*(C'\fR. All rights reserved. +.PP +This module is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. See perlartistic. +.SH "DISCLAIMER OF WARRANTY" +.IX Header "DISCLAIMER OF WARRANTY" +\&\s-1BECAUSE\s0 \s-1THIS\s0 \s-1SOFTWARE\s0 \s-1IS\s0 \s-1LICENSED\s0 \s-1FREE\s0 \s-1OF\s0 \s-1CHARGE\s0, \s-1THERE\s0 \s-1IS\s0 \s-1NO\s0 \s-1WARRANTY\s0 +\&\s-1FOR\s0 \s-1THE\s0 \s-1SOFTWARE\s0, \s-1TO\s0 \s-1THE\s0 \s-1EXTENT\s0 \s-1PERMITTED\s0 \s-1BY\s0 \s-1APPLICABLE\s0 \s-1LAW\s0. \s-1EXCEPT\s0 \s-1WHEN\s0 +\&\s-1OTHERWISE\s0 \s-1STATED\s0 \s-1IN\s0 \s-1WRITING\s0 \s-1THE\s0 \s-1COPYRIGHT\s0 \s-1HOLDERS\s0 \s-1AND/OR\s0 \s-1OTHER\s0 \s-1PARTIES\s0 +\&\s-1PROVIDE\s0 \s-1THE\s0 \s-1SOFTWARE\s0 \*(L"\s-1AS\s0 \s-1IS\s0\*(R" \s-1WITHOUT\s0 \s-1WARRANTY\s0 \s-1OF\s0 \s-1ANY\s0 \s-1KIND\s0, \s-1EITHER\s0 +\&\s-1EXPRESSED\s0 \s-1OR\s0 \s-1IMPLIED\s0, \s-1INCLUDING\s0, \s-1BUT\s0 \s-1NOT\s0 \s-1LIMITED\s0 \s-1TO\s0, \s-1THE\s0 \s-1IMPLIED\s0 +\&\s-1WARRANTIES\s0 \s-1OF\s0 \s-1MERCHANTABILITY\s0 \s-1AND\s0 \s-1FITNESS\s0 \s-1FOR\s0 A \s-1PARTICULAR\s0 \s-1PURPOSE\s0. \s-1THE\s0 +\&\s-1ENTIRE\s0 \s-1RISK\s0 \s-1AS\s0 \s-1TO\s0 \s-1THE\s0 \s-1QUALITY\s0 \s-1AND\s0 \s-1PERFORMANCE\s0 \s-1OF\s0 \s-1THE\s0 \s-1SOFTWARE\s0 \s-1IS\s0 \s-1WITH\s0 +\&\s-1YOU\s0. \s-1SHOULD\s0 \s-1THE\s0 \s-1SOFTWARE\s0 \s-1PROVE\s0 \s-1DEFECTIVE\s0, \s-1YOU\s0 \s-1ASSUME\s0 \s-1THE\s0 \s-1COST\s0 \s-1OF\s0 \s-1ALL\s0 +\&\s-1NECESSARY\s0 \s-1SERVICING\s0, \s-1REPAIR\s0, \s-1OR\s0 \s-1CORRECTION\s0. +.PP +\&\s-1IN\s0 \s-1NO\s0 \s-1EVENT\s0 \s-1UNLESS\s0 \s-1REQUIRED\s0 \s-1BY\s0 \s-1APPLICABLE\s0 \s-1LAW\s0 \s-1OR\s0 \s-1AGREED\s0 \s-1TO\s0 \s-1IN\s0 \s-1WRITING\s0 +\&\s-1WILL\s0 \s-1ANY\s0 \s-1COPYRIGHT\s0 \s-1HOLDER\s0, \s-1OR\s0 \s-1ANY\s0 \s-1OTHER\s0 \s-1PARTY\s0 \s-1WHO\s0 \s-1MAY\s0 \s-1MODIFY\s0 \s-1AND/OR\s0 +\&\s-1REDISTRIBUTE\s0 \s-1THE\s0 \s-1SOFTWARE\s0 \s-1AS\s0 \s-1PERMITTED\s0 \s-1BY\s0 \s-1THE\s0 \s-1ABOVE\s0 \s-1LICENCE\s0, \s-1BE\s0 +\&\s-1LIABLE\s0 \s-1TO\s0 \s-1YOU\s0 \s-1FOR\s0 \s-1DAMAGES\s0, \s-1INCLUDING\s0 \s-1ANY\s0 \s-1GENERAL\s0, \s-1SPECIAL\s0, \s-1INCIDENTAL\s0, +\&\s-1OR\s0 \s-1CONSEQUENTIAL\s0 \s-1DAMAGES\s0 \s-1ARISING\s0 \s-1OUT\s0 \s-1OF\s0 \s-1THE\s0 \s-1USE\s0 \s-1OR\s0 \s-1INABILITY\s0 \s-1TO\s0 \s-1USE\s0 +\&\s-1THE\s0 \s-1SOFTWARE\s0 (\s-1INCLUDING\s0 \s-1BUT\s0 \s-1NOT\s0 \s-1LIMITED\s0 \s-1TO\s0 \s-1LOSS\s0 \s-1OF\s0 \s-1DATA\s0 \s-1OR\s0 \s-1DATA\s0 \s-1BEING\s0 +\&\s-1RENDERED\s0 \s-1INACCURATE\s0 \s-1OR\s0 \s-1LOSSES\s0 \s-1SUSTAINED\s0 \s-1BY\s0 \s-1YOU\s0 \s-1OR\s0 \s-1THIRD\s0 \s-1PARTIES\s0 \s-1OR\s0 A +\&\s-1FAILURE\s0 \s-1OF\s0 \s-1THE\s0 \s-1SOFTWARE\s0 \s-1TO\s0 \s-1OPERATE\s0 \s-1WITH\s0 \s-1ANY\s0 \s-1OTHER\s0 \s-1SOFTWARE\s0), \s-1EVEN\s0 \s-1IF\s0 +\&\s-1SUCH\s0 \s-1HOLDER\s0 \s-1OR\s0 \s-1OTHER\s0 \s-1PARTY\s0 \s-1HAS\s0 \s-1BEEN\s0 \s-1ADVISED\s0 \s-1OF\s0 \s-1THE\s0 \s-1POSSIBILITY\s0 \s-1OF\s0 +\&\s-1SUCH\s0 \s-1DAMAGES\s0. diff --git a/Data-YAML-0.0.6/blib/man3/Data::YAML::Reader.3pm b/Data-YAML-0.0.6/blib/man3/Data::YAML::Reader.3pm new file mode 100644 index 0000000..f01295e --- /dev/null +++ b/Data-YAML-0.0.6/blib/man3/Data::YAML::Reader.3pm @@ -0,0 +1,243 @@ +.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.13) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.ie \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. nr % 0 +. rr F +.\} +.el \{\ +. de IX +.. +.\} +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "Data::YAML::Reader 3" +.TH Data::YAML::Reader 3 "2009-03-08" "perl v5.10.1" "User Contributed Perl Documentation" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH "NAME" +Data::YAML::Reader \- Parse YAML created by Data::YAML::Writer +.SH "VERSION" +.IX Header "VERSION" +This document describes Data::YAML::Reader version 0.0.6 +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +.Vb 1 +\& use Data::YAML::Reader; +\& +\& my $yr = Data::YAML::Reader\->new; +\& +\& # Read from an array... +\& my $from_array = $yr\->read( \e@some_array ); +\& +\& # ...an open file handle... +\& my $from_handle = $yr\->read( $some_file ); +\& +\& # ...a string containing YAML... +\& my $from_string = $yr\->read( $some_string ); +\& +\& # ...or a closure +\& my $from_code = $yr\->read( sub { return get_next_line() } ); +.Ve +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +In the spirit of YAML::Tiny this is a lightweight, dependency-free +\&\s-1YAML\s0 reader. While \f(CW\*(C`YAML::Tiny\*(C'\fR is designed principally for working +with configuration files \f(CW\*(C`Data::YAML\*(C'\fR concentrates on the transparent +round-tripping of \s-1YAML\s0 serialized Perl data structures. +.PP +The syntax accepted by \f(CW\*(C`Data::YAML::Reader\*(C'\fR is a subset of \s-1YAML\s0. +Specifically it is the same subset of \s-1YAML\s0 that Data::YAML::Writer +produces. See Data::YAML for more information. +.SH "INTERFACE" +.IX Header "INTERFACE" +.ie n .IP """new""" 4 +.el .IP "\f(CWnew\fR" 4 +.IX Item "new" +Creates and returns an empty \f(CW\*(C`Data::YAML::Reader\*(C'\fR object. No options may be passed. +.ie n .IP """read( $source )""" 4 +.el .IP "\f(CWread( $source )\fR" 4 +.IX Item "read( $source )" +Read \s-1YAML\s0 and return the data structure it represents. The \s-1YAML\s0 data may be supplied by a +.RS 4 +.IP "\(bu" 4 +scalar string containing \s-1YAML\s0 source +.IP "\(bu" 4 +the handle of an open file +.IP "\(bu" 4 +a reference to an array of lines +.IP "\(bu" 4 +a code reference +.RE +.RS 4 +.Sp +In the case of a code reference a subroutine (most likely a closure) +that returns successive lines of \s-1YAML\s0 must be supplied. Lines should +have no trailing newline. When the \s-1YAML\s0 is exhausted the subroutine must +return undef. +.Sp +Returns the data structure (specifically either a scalar, hash ref or +array ref) that results from decoding the \s-1YAML\s0. +.RE +.ie n .IP """get_raw""" 4 +.el .IP "\f(CWget_raw\fR" 4 +.IX Item "get_raw" +Return the raw \s-1YAML\s0 source from the most recent \f(CW\*(C`read\*(C'\fR. +.SH "BUGS AND LIMITATIONS" +.IX Header "BUGS AND LIMITATIONS" +No bugs have been reported. +.PP +Please report any bugs or feature requests to +\&\f(CW\*(C`data\-yaml@rt.cpan.org\*(C'\fR, or through the web interface at +<http://rt.cpan.org>. +.SH "SEE ALSO" +.IX Header "SEE ALSO" +YAML::Tiny, \s-1YAML\s0, YAML::Syck, Config::Tiny, CSS::Tiny +.SH "AUTHOR" +.IX Header "AUTHOR" +Andy Armstrong \f(CW\*(C`<andy@hexten.net>\*(C'\fR +.PP +Adam Kennedy wrote YAML::Tiny which provided the template and many of +the \s-1YAML\s0 matching regular expressions for this module. +.SH "LICENCE AND COPYRIGHT" +.IX Header "LICENCE AND COPYRIGHT" +Copyright (c) 2007, Andy Armstrong \f(CW\*(C`<andy@hexten.net>\*(C'\fR. All rights reserved. +.PP +This module is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. See perlartistic. +.SH "DISCLAIMER OF WARRANTY" +.IX Header "DISCLAIMER OF WARRANTY" +\&\s-1BECAUSE\s0 \s-1THIS\s0 \s-1SOFTWARE\s0 \s-1IS\s0 \s-1LICENSED\s0 \s-1FREE\s0 \s-1OF\s0 \s-1CHARGE\s0, \s-1THERE\s0 \s-1IS\s0 \s-1NO\s0 \s-1WARRANTY\s0 +\&\s-1FOR\s0 \s-1THE\s0 \s-1SOFTWARE\s0, \s-1TO\s0 \s-1THE\s0 \s-1EXTENT\s0 \s-1PERMITTED\s0 \s-1BY\s0 \s-1APPLICABLE\s0 \s-1LAW\s0. \s-1EXCEPT\s0 \s-1WHEN\s0 +\&\s-1OTHERWISE\s0 \s-1STATED\s0 \s-1IN\s0 \s-1WRITING\s0 \s-1THE\s0 \s-1COPYRIGHT\s0 \s-1HOLDERS\s0 \s-1AND/OR\s0 \s-1OTHER\s0 \s-1PARTIES\s0 +\&\s-1PROVIDE\s0 \s-1THE\s0 \s-1SOFTWARE\s0 \*(L"\s-1AS\s0 \s-1IS\s0\*(R" \s-1WITHOUT\s0 \s-1WARRANTY\s0 \s-1OF\s0 \s-1ANY\s0 \s-1KIND\s0, \s-1EITHER\s0 +\&\s-1EXPRESSED\s0 \s-1OR\s0 \s-1IMPLIED\s0, \s-1INCLUDING\s0, \s-1BUT\s0 \s-1NOT\s0 \s-1LIMITED\s0 \s-1TO\s0, \s-1THE\s0 \s-1IMPLIED\s0 +\&\s-1WARRANTIES\s0 \s-1OF\s0 \s-1MERCHANTABILITY\s0 \s-1AND\s0 \s-1FITNESS\s0 \s-1FOR\s0 A \s-1PARTICULAR\s0 \s-1PURPOSE\s0. \s-1THE\s0 +\&\s-1ENTIRE\s0 \s-1RISK\s0 \s-1AS\s0 \s-1TO\s0 \s-1THE\s0 \s-1QUALITY\s0 \s-1AND\s0 \s-1PERFORMANCE\s0 \s-1OF\s0 \s-1THE\s0 \s-1SOFTWARE\s0 \s-1IS\s0 \s-1WITH\s0 +\&\s-1YOU\s0. \s-1SHOULD\s0 \s-1THE\s0 \s-1SOFTWARE\s0 \s-1PROVE\s0 \s-1DEFECTIVE\s0, \s-1YOU\s0 \s-1ASSUME\s0 \s-1THE\s0 \s-1COST\s0 \s-1OF\s0 \s-1ALL\s0 +\&\s-1NECESSARY\s0 \s-1SERVICING\s0, \s-1REPAIR\s0, \s-1OR\s0 \s-1CORRECTION\s0. +.PP +\&\s-1IN\s0 \s-1NO\s0 \s-1EVENT\s0 \s-1UNLESS\s0 \s-1REQUIRED\s0 \s-1BY\s0 \s-1APPLICABLE\s0 \s-1LAW\s0 \s-1OR\s0 \s-1AGREED\s0 \s-1TO\s0 \s-1IN\s0 \s-1WRITING\s0 +\&\s-1WILL\s0 \s-1ANY\s0 \s-1COPYRIGHT\s0 \s-1HOLDER\s0, \s-1OR\s0 \s-1ANY\s0 \s-1OTHER\s0 \s-1PARTY\s0 \s-1WHO\s0 \s-1MAY\s0 \s-1MODIFY\s0 \s-1AND/OR\s0 +\&\s-1REDISTRIBUTE\s0 \s-1THE\s0 \s-1SOFTWARE\s0 \s-1AS\s0 \s-1PERMITTED\s0 \s-1BY\s0 \s-1THE\s0 \s-1ABOVE\s0 \s-1LICENCE\s0, \s-1BE\s0 +\&\s-1LIABLE\s0 \s-1TO\s0 \s-1YOU\s0 \s-1FOR\s0 \s-1DAMAGES\s0, \s-1INCLUDING\s0 \s-1ANY\s0 \s-1GENERAL\s0, \s-1SPECIAL\s0, \s-1INCIDENTAL\s0, +\&\s-1OR\s0 \s-1CONSEQUENTIAL\s0 \s-1DAMAGES\s0 \s-1ARISING\s0 \s-1OUT\s0 \s-1OF\s0 \s-1THE\s0 \s-1USE\s0 \s-1OR\s0 \s-1INABILITY\s0 \s-1TO\s0 \s-1USE\s0 +\&\s-1THE\s0 \s-1SOFTWARE\s0 (\s-1INCLUDING\s0 \s-1BUT\s0 \s-1NOT\s0 \s-1LIMITED\s0 \s-1TO\s0 \s-1LOSS\s0 \s-1OF\s0 \s-1DATA\s0 \s-1OR\s0 \s-1DATA\s0 \s-1BEING\s0 +\&\s-1RENDERED\s0 \s-1INACCURATE\s0 \s-1OR\s0 \s-1LOSSES\s0 \s-1SUSTAINED\s0 \s-1BY\s0 \s-1YOU\s0 \s-1OR\s0 \s-1THIRD\s0 \s-1PARTIES\s0 \s-1OR\s0 A +\&\s-1FAILURE\s0 \s-1OF\s0 \s-1THE\s0 \s-1SOFTWARE\s0 \s-1TO\s0 \s-1OPERATE\s0 \s-1WITH\s0 \s-1ANY\s0 \s-1OTHER\s0 \s-1SOFTWARE\s0), \s-1EVEN\s0 \s-1IF\s0 +\&\s-1SUCH\s0 \s-1HOLDER\s0 \s-1OR\s0 \s-1OTHER\s0 \s-1PARTY\s0 \s-1HAS\s0 \s-1BEEN\s0 \s-1ADVISED\s0 \s-1OF\s0 \s-1THE\s0 \s-1POSSIBILITY\s0 \s-1OF\s0 +\&\s-1SUCH\s0 \s-1DAMAGES\s0. diff --git a/Data-YAML-0.0.6/blib/man3/Data::YAML::Writer.3pm b/Data-YAML-0.0.6/blib/man3/Data::YAML::Writer.3pm new file mode 100644 index 0000000..2ec49e5 --- /dev/null +++ b/Data-YAML-0.0.6/blib/man3/Data::YAML::Writer.3pm @@ -0,0 +1,261 @@ +.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.13) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.ie \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. nr % 0 +. rr F +.\} +.el \{\ +. de IX +.. +.\} +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "Data::YAML::Writer 3" +.TH Data::YAML::Writer 3 "2009-03-08" "perl v5.10.1" "User Contributed Perl Documentation" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH "NAME" +Data::YAML::Writer \- Easy YAML serialisation +.SH "VERSION" +.IX Header "VERSION" +This document describes Data::YAML::Writer version 0.0.6 +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +.Vb 1 +\& use Data::YAML::Writer; +\& +\& my $data = { +\& one => 1, +\& two => 2, +\& three => [ 1, 2, 3 ], +\& }; +\& +\& my $yw = Data::YAML::Writer\->new; +\& +\& # Write to an array... +\& $yw\->write( $data, \e@some_array ); +\& +\& # ...an open file handle... +\& $yw\->write( $data, $some_file_handle ); +\& +\& # ...a string ... +\& $yw\->write( $data, \e$some_string ); +\& +\& # ...or a closure +\& $yw\->write( $data, sub { +\& my $line = shift; +\& print "$line\en"; +\& } ); +.Ve +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +Encodes a scalar, hash reference or array reference as \s-1YAML\s0. +.PP +In the spirit of YAML::Tiny this is a lightweight, dependency-free +\&\s-1YAML\s0 writer. While \f(CW\*(C`YAML::Tiny\*(C'\fR is designed principally for working +with configuration files \f(CW\*(C`Data::YAML\*(C'\fR concentrates on the transparent +round-tripping of \s-1YAML\s0 serialized Perl data structures. +.PP +The syntax produced by \f(CW\*(C`Data::YAML::Writer\*(C'\fR is a subset of \s-1YAML\s0. +Specifically it is the same subset of \s-1YAML\s0 that Data::YAML::Reader +consumes. See Data::YAML for more information. +.SH "INTERFACE" +.IX Header "INTERFACE" +.ie n .IP """new""" 4 +.el .IP "\f(CWnew\fR" 4 +.IX Item "new" +The constructor \f(CW\*(C`new\*(C'\fR creates and returns an empty \f(CW\*(C`Data::YAML::Writer\*(C'\fR object. +.ie n .IP """write( $obj, $output )""" 4 +.el .IP "\f(CWwrite( $obj, $output )\fR" 4 +.IX Item "write( $obj, $output )" +Encode a scalar, hash reference or array reference as \s-1YAML\s0. +.Sp +.Vb 4 +\& my $writer = sub { +\& my $line = shift; +\& print SOMEFILE "$line\en"; +\& }; +\& +\& my $data = { +\& one => 1, +\& two => 2, +\& three => [ 1, 2, 3 ], +\& }; +\& +\& my $yw = Data::YAML::Writer\->new; +\& $yw\->write( $data, $writer ); +.Ve +.Sp +The \f(CW $output \fR argument may be +.RS 4 +.IP "\(bu" 4 +a reference to a scalar to append \s-1YAML\s0 to +.IP "\(bu" 4 +the handle of an open file +.IP "\(bu" 4 +a reference to an array into which \s-1YAML\s0 will be pushed +.IP "\(bu" 4 +a code reference +.RE +.RS 4 +.Sp +If you supply a code reference the subroutine will be called once for +each line of output with the line as its only argument. Passed lines +will have no trailing newline. +.RE +.SH "BUGS AND LIMITATIONS" +.IX Header "BUGS AND LIMITATIONS" +No bugs have been reported. +.PP +Please report any bugs or feature requests to +\&\f(CW\*(C`data\-yaml@rt.cpan.org\*(C'\fR, or through the web interface at +<http://rt.cpan.org>. +.SH "SEE ALSO" +.IX Header "SEE ALSO" +YAML::Tiny, \s-1YAML\s0, YAML::Syck, Config::Tiny, CSS::Tiny +.SH "AUTHOR" +.IX Header "AUTHOR" +Andy Armstrong \f(CW\*(C`<andy@hexten.net>\*(C'\fR +.SH "LICENCE AND COPYRIGHT" +.IX Header "LICENCE AND COPYRIGHT" +Copyright (c) 2007, Andy Armstrong \f(CW\*(C`<andy@hexten.net>\*(C'\fR. All rights reserved. +.PP +This module is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. See perlartistic. +.SH "DISCLAIMER OF WARRANTY" +.IX Header "DISCLAIMER OF WARRANTY" +\&\s-1BECAUSE\s0 \s-1THIS\s0 \s-1SOFTWARE\s0 \s-1IS\s0 \s-1LICENSED\s0 \s-1FREE\s0 \s-1OF\s0 \s-1CHARGE\s0, \s-1THERE\s0 \s-1IS\s0 \s-1NO\s0 \s-1WARRANTY\s0 +\&\s-1FOR\s0 \s-1THE\s0 \s-1SOFTWARE\s0, \s-1TO\s0 \s-1THE\s0 \s-1EXTENT\s0 \s-1PERMITTED\s0 \s-1BY\s0 \s-1APPLICABLE\s0 \s-1LAW\s0. \s-1EXCEPT\s0 \s-1WHEN\s0 +\&\s-1OTHERWISE\s0 \s-1STATED\s0 \s-1IN\s0 \s-1WRITING\s0 \s-1THE\s0 \s-1COPYRIGHT\s0 \s-1HOLDERS\s0 \s-1AND/OR\s0 \s-1OTHER\s0 \s-1PARTIES\s0 +\&\s-1PROVIDE\s0 \s-1THE\s0 \s-1SOFTWARE\s0 \*(L"\s-1AS\s0 \s-1IS\s0\*(R" \s-1WITHOUT\s0 \s-1WARRANTY\s0 \s-1OF\s0 \s-1ANY\s0 \s-1KIND\s0, \s-1EITHER\s0 +\&\s-1EXPRESSED\s0 \s-1OR\s0 \s-1IMPLIED\s0, \s-1INCLUDING\s0, \s-1BUT\s0 \s-1NOT\s0 \s-1LIMITED\s0 \s-1TO\s0, \s-1THE\s0 \s-1IMPLIED\s0 +\&\s-1WARRANTIES\s0 \s-1OF\s0 \s-1MERCHANTABILITY\s0 \s-1AND\s0 \s-1FITNESS\s0 \s-1FOR\s0 A \s-1PARTICULAR\s0 \s-1PURPOSE\s0. \s-1THE\s0 +\&\s-1ENTIRE\s0 \s-1RISK\s0 \s-1AS\s0 \s-1TO\s0 \s-1THE\s0 \s-1QUALITY\s0 \s-1AND\s0 \s-1PERFORMANCE\s0 \s-1OF\s0 \s-1THE\s0 \s-1SOFTWARE\s0 \s-1IS\s0 \s-1WITH\s0 +\&\s-1YOU\s0. \s-1SHOULD\s0 \s-1THE\s0 \s-1SOFTWARE\s0 \s-1PROVE\s0 \s-1DEFECTIVE\s0, \s-1YOU\s0 \s-1ASSUME\s0 \s-1THE\s0 \s-1COST\s0 \s-1OF\s0 \s-1ALL\s0 +\&\s-1NECESSARY\s0 \s-1SERVICING\s0, \s-1REPAIR\s0, \s-1OR\s0 \s-1CORRECTION\s0. +.PP +\&\s-1IN\s0 \s-1NO\s0 \s-1EVENT\s0 \s-1UNLESS\s0 \s-1REQUIRED\s0 \s-1BY\s0 \s-1APPLICABLE\s0 \s-1LAW\s0 \s-1OR\s0 \s-1AGREED\s0 \s-1TO\s0 \s-1IN\s0 \s-1WRITING\s0 +\&\s-1WILL\s0 \s-1ANY\s0 \s-1COPYRIGHT\s0 \s-1HOLDER\s0, \s-1OR\s0 \s-1ANY\s0 \s-1OTHER\s0 \s-1PARTY\s0 \s-1WHO\s0 \s-1MAY\s0 \s-1MODIFY\s0 \s-1AND/OR\s0 +\&\s-1REDISTRIBUTE\s0 \s-1THE\s0 \s-1SOFTWARE\s0 \s-1AS\s0 \s-1PERMITTED\s0 \s-1BY\s0 \s-1THE\s0 \s-1ABOVE\s0 \s-1LICENCE\s0, \s-1BE\s0 +\&\s-1LIABLE\s0 \s-1TO\s0 \s-1YOU\s0 \s-1FOR\s0 \s-1DAMAGES\s0, \s-1INCLUDING\s0 \s-1ANY\s0 \s-1GENERAL\s0, \s-1SPECIAL\s0, \s-1INCIDENTAL\s0, +\&\s-1OR\s0 \s-1CONSEQUENTIAL\s0 \s-1DAMAGES\s0 \s-1ARISING\s0 \s-1OUT\s0 \s-1OF\s0 \s-1THE\s0 \s-1USE\s0 \s-1OR\s0 \s-1INABILITY\s0 \s-1TO\s0 \s-1USE\s0 +\&\s-1THE\s0 \s-1SOFTWARE\s0 (\s-1INCLUDING\s0 \s-1BUT\s0 \s-1NOT\s0 \s-1LIMITED\s0 \s-1TO\s0 \s-1LOSS\s0 \s-1OF\s0 \s-1DATA\s0 \s-1OR\s0 \s-1DATA\s0 \s-1BEING\s0 +\&\s-1RENDERED\s0 \s-1INACCURATE\s0 \s-1OR\s0 \s-1LOSSES\s0 \s-1SUSTAINED\s0 \s-1BY\s0 \s-1YOU\s0 \s-1OR\s0 \s-1THIRD\s0 \s-1PARTIES\s0 \s-1OR\s0 A +\&\s-1FAILURE\s0 \s-1OF\s0 \s-1THE\s0 \s-1SOFTWARE\s0 \s-1TO\s0 \s-1OPERATE\s0 \s-1WITH\s0 \s-1ANY\s0 \s-1OTHER\s0 \s-1SOFTWARE\s0), \s-1EVEN\s0 \s-1IF\s0 +\&\s-1SUCH\s0 \s-1HOLDER\s0 \s-1OR\s0 \s-1OTHER\s0 \s-1PARTY\s0 \s-1HAS\s0 \s-1BEEN\s0 \s-1ADVISED\s0 \s-1OF\s0 \s-1THE\s0 \s-1POSSIBILITY\s0 \s-1OF\s0 +\&\s-1SUCH\s0 \s-1DAMAGES\s0. diff --git a/Data-YAML-0.0.6/blib/script/.exists b/Data-YAML-0.0.6/blib/script/.exists new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/Data-YAML-0.0.6/blib/script/.exists |