in reply to
Using a Regex to parse into keys
To do exactly what you asked for, in a non-flexible way...
#!/usr/bin/perl
use Data::Dumper;
my $text = join('', <DATA>);
my %hash = ($text =~ /(\d+)\~\<font color="(#[0-9A-Fa-f]{6})"\>/g);
print Dumper(\%hash);
__DATA__
4~<font color="#FF0000"><b>,</b></font> Some junk
5~<font color="#FF0200"><b>,</b></font> more junk 6~<font color="#FF03
+00"><b>,</b></font>sd
7~<font color="#FF0400"><b>,</b></font> last junk 99
8~<font color="#FF0500"><b>,</b></font>
[TINPC@perlcabal.com shh]$
su real