note that $Start and $Finish are regexes in the OP, so you can't just use them as if they were strings (as hash keys), and you can't assume that the whole string in $line matches. (It's enough if a substring matches, unless the regexes contain anchors).
You're exactly right, of course -- I didn't fully caveat the code (hey, this guy used caveat as a verb -- can he do that?). I was just trying to provide an alternative line of thought. 8o)