in reply to Trying to parse columns with different delimiters.

Adjust to suit your reqs:

#! perl -slw use strict; use Data::Dump qw[ pp ]; my %data; while( <DATA> ) { chomp; m{^ (.+) :: \s+ (.+) \s+ -- \s+ (.+) \s+ \[ (.+) \] \s* }x or warn "Mismatch: '$_'" and next; $data{ $1 } = { split( ' ', $2 ), split( ' ', $3 ), map { split '=', $_, 2 } split ',\s?', $4 }; $data{ $1 }{ Budget } = { map{ split '=' } split ';', $data{ $1 }{ Budget } }; } pp \%data;

Produces:

{ "01:00:00,00" => { Budget => { cost => 44_444, tax => "11%", total = +> 3343 }, Col => "Foo", Color => "y", Description => "Scene", International => "y", Link => "y", Sound => "Dolby", }, "02:00:00,00" => { Budget => { cost => 54_444, tax => "1%", total => + 1343 }, Col => "Boo", Color => "n", Description => "Scene", International => "y", Link => "y", Sound => "THX", }, "03:00:00,00" => { Budget => { cost => 64_444, tax => "1%", total => + 2343 }, Col => "Goo", Color => "y", Description => "Scene", International => "y", Link => "n", Sound => "PTX", }, "04:00:00,00" => { Budget => { cost => 84_444, tax => "1.1%", total +=> 5343 }, Col => "Aoo", Color => "n", Description => "Scene", International => "y", Link => "y", Sound => "DDY", }, }

Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
"Too many [] have been sedated by an oppressive environment of political correctness and risk aversion."