package File::KDBX::Loader::Raw; # ABSTRACT: A no-op loader that doesn't do any parsing use warnings; use strict; use File::KDBX::Util qw(:class); use namespace::clean; extends 'File::KDBX::Loader'; our $VERSION = '999.999'; # VERSION sub _read { my $self = shift; my $fh = shift; $self->_read_body($fh); } sub _read_body { my $self = shift; my $fh = shift; $self->_read_inner_body($fh); } sub _read_inner_body { my $self = shift; my $fh = shift; my $content = do { local $/; <$fh> }; $self->kdbx->raw($content); } 1; __END__ =head1 SYNOPSIS use File::KDBX::Loader; my $kdbx = File::KDBX::Loader->load_file('file.kdbx', $key, inner_format => 'Raw'); print $kdbx->raw; =head1 DESCRIPTION A typical KDBX file is made up of an outer section (with headers) and an inner section (with the body). The inner section is usually loaded using L, but you can use the B loader to not parse the body at all and just get the raw body content. This can be useful for debugging or creating KDBX files with arbitrary content (see L). =cut