elsif doesn't start a statement. It's part of an if statement. In this case, it's telling you that the error is in the statement that started at line 7. I don't know why it's not more precise, but I'm sure changing it would involve extreme changes to perl's guts.