use warnings; use strict; package Jifty::YAML; =head1 NAME Jifty::YAML -- Wrapper around L =head1 DESCRIPTION Provides a wrapper around the L library. If the faster L is available, then it's used instead. =head1 METHODS =head2 Dump =head2 DumpFile =head2 Load =head2 LoadFile Each of the above is alias to the equivalent function in either L or L. =cut BEGIN { local $@; no strict 'refs'; no warnings 'once'; if ( eval { require YAML::Syck; YAML::Syck->VERSION(0.71) } ) { *Load = *YAML::Syck::Load; require YAML; # Use YAML::Dump for the moment since YAML.pm segfaults on # reading stupidly long (~20K characters) double-quoted # strings, and we need to produce YAML.pm-readable output. *Dump = *YAML::Dump; #*Dump = *YAML::Syck::Dump; *LoadFile = *YAML::Syck::LoadFile; *DumpFile = *YAML::Syck::DumpFile; } else { require YAML; *Load = *YAML::Load; *Dump = *YAML::Dump; *LoadFile = *YAML::LoadFile; *DumpFile = *YAML::DumpFile; } } 1;