It's to help protect you from both yourself and to a certain degree, malicious users - esp. in a CGI context. It does this by enforcing a set of rules that you need to follow as a pre-requisite to your code compiling e.g. checking the validity of scalars, directory permissions etc. etc..
A user level that continues to overstate my experience :-))