package Mail::AuthenticationResults::Token::QuotedString; # ABSTRACT: Class for modelling AuthenticationResults Header parts detected as quoted strings require 5.008; use strict; use warnings; our $VERSION = '2.20210112'; # VERSION use Carp; use base 'Mail::AuthenticationResults::Token'; sub is { my ( $self ) = @_; return 'string'; } sub parse { my ($self) = @_; my $header = $self->{ 'header' }; my $value = q{}; my $first = substr( $header,0,1 ); $header = substr( $header,1 ); croak 'not a quoted string' if $first ne '"'; my $closed = 0; while ( length $header > 0 ) { my $first = substr( $header,0,1 ); $header = substr( $header,1 ); if ( $first eq '"' ) { $closed = 1; last; } $value .= $first; } croak 'Quoted string not closed' if ! $closed; $self->{ 'value' } = $value; $self->{ 'header' } = $header; return; } 1; __END__ =pod =encoding UTF-8 =head1 NAME Mail::AuthenticationResults::Token::QuotedString - Class for modelling AuthenticationResults Header parts detected as quoted strings =head1 VERSION version 2.20210112 =head1 DESCRIPTION Token representing a quoted string =head1 AUTHOR Marc Bradshaw =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2020 by Marc Bradshaw. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut