App-GhaInstall

 view release on metacpan or  search on metacpan

lib/App/GhaInstall/YAML.pm  view on Meta::CPAN

    my $class  = ref $_[0] ? ref shift : shift;
    my $self   = bless [], $class;
    my $string = $_[0];
    eval {
        unless ( defined $string ) {
            die \"Did not provide a string to load";
        }

        # Byte order marks
        # NOTE: Keeping this here to educate maintainers
        # my %BOM = (
        #     "\357\273\277" => 'UTF-8',
        #     "\376\377"     => 'UTF-16BE',
        #     "\377\376"     => 'UTF-16LE',
        #     "\377\376\0\0" => 'UTF-32LE'
        #     "\0\0\376\377" => 'UTF-32BE',
        # );
        if ( $string =~ /^(?:\376\377|\377\376|\377\376\0\0|\0\0\376\377)/ ) {
            die \"Stream has a non UTF-8 BOM";
        } else {
            # Strip UTF-8 bom if found, we'll just ignore it
            $string =~ s/^\357\273\277//;
        }

        # Try to decode as utf8
        utf8::decode($string) if HAVE_UTF8;

        # Check for some special cases
        return $self unless length $string;



( run in 0.596 second using v1.01-cache-2.11-cpan-e9daa2b36ef )