#!/usr/bin/env perl use strict; use warnings; use Test::More tests => 1; my $in = q/Attr num="101" name="Created" desc="Time file was created." type="t" ord="3" value="2017-06-03T11:27:23+01:00"/; my %want = ( 'Attr num' => 101, name => 'Created', desc => 'Time file was created.', type => 't', ord => 3, value => '2017-06-03T11:27:23+01:00' ); my %have = split (/="|" ?/, $in); is_deeply (\%have, \%want);