“Who,” among other things, is an interrogatory pronoun. We use it when we ask a simple question about someone.
Who ate the last cookie?
To use “who” correctly this way, you need two things:
- The “who” must be first.
- “Who” must be the subject of the sentence.
The problem is that being the first word in the sentence is a stronger signal than being the subject of the sentence, and that leads to people using “who” when they should use “whom.” For example:
Who do you think ate the last cookie?
The subject is “you,” making that “who” be the direct object, which means you need “whom.” Here’s the sentence in declarative form to make it easier to see:
You think whom ate the cookie.
Let’s change the pronoun to make it more intuitive, because I have a surprise for you:
You think him ate the cookie.
“Huh??? Shouldn’t it be ‘You think he ate the cookie.’?” you ask.
And yes, you’d be right. “He” is the subject of the subordinate clause “-he ate the cookie,” even though the whole subordinate clause functions as the direct object. So in a declarative sentence, with the subordinate subject right there in the clause, “he” is correct. Sorry to have to throw a grammatical weasel at you, but when you drag the word to the front of the sentence, as you must do when you ask a question, you have to use “whom” to warn your reader that you have a direct object coming up.
All that to praise the porcupine in this Grizzwells comic for getting it right:
Simple version of the rule: If the question has two verbs, use “whom.”