Puyol holding Robben was the second most blatant foul of the game. The first was De Jong kicking Alonso, but that didn't get the call it should have, either. So, all in all, not such a good job on the ref's part.
Sure, that should've been a foul, but he dove afterwards, and it was outside the box. But he was complaining well before that, and I don't blame the ref for not calling Puyol. Robben had whined and dove all game, and if you complain to the ref and he knows your faking, he's not going to give you any close calls. Robben surely would have gotten a yellow card after that play too for yelling at the ref, if he hadn't bumped into a Spanish player.