use CSS; my $css = CSS->new(); $css->read_string('div#foo p.bar { background-image : url(/foo/bar.gif) }'); # $css->read_string('table { border: 1px solid #FF0000 }'); # etc... my %bg_selectors; # for some reason, CSS doesn't supply accessor methods... foreach my $rule ( @{ $css->{'styles'} } ) { foreach my $prop ( @{ $rule->{'properties'} } ) { if ( $prop->{'property'} =~ /^background(?:-image)?$/ ) { foreach my $selector ( @{ $rule->{'selectors'} } ) { $bg_selectors{$selector->{'name'}} = $prop->{'simple_value'}; } } } }