I spent a couple of weeks recently learning C, as it's the
scripting language (!) of a tool I've been using at work.
By doing various exercises (reverse a string in place, reverse it word-wise, write string-buffer functions etc.),
I learnt about pointer manipulation, structs, and manual
memory management: though none of this makes me a C programmer, the learning experience was incredibly useful.
Maybe it's easier to get something from learning C after Perl than the reverse, because you can't write Perl in C, so you have to learn lower level ways of doing it?