As others have said, C is the underpinning of much (though not all) of the freely-available code that's available on the net. Some reasons you might want to learn it:
- if you want to get a feel for the operations of your programs at a level closer to the actual machine
- if you want to extend Perl through the use of Inline (or XS) (though you can use other languages with Inline)
- if you want to help with Perl (or much other open-source) development
- if you want to do embedded systems development with small microcontrollers and don't want to use assembly language (IT is only one part of the computer programming world, after all)
Some reasons you might want to learn some other (different kind of) language first:
- C's structure is not as different from Perl's as some other languages are; you are going to be re-hashing many of the same ideas
- You won't pick up too many powerful new ideas from C that you can use to improve the way you look at designs
- C can be a difficult language in which to express algorithms readably, especially because of its lack of memory management and high-level data structures.
Other sources of good ideas? Object-oriented languages, functional languages, parallel processing languages, distributed-system languages, database languages. Oldies but goodies like Smalltalk and Lisp will have more information available on the 'net, generally.