in reply to How to build system calls using '=>'

A => is also called a "fat comma". It's basically a comma, but if the left hand side looks like a 'bare word', it assumes it's quoted. So,
system mkdir => '-p' => @dirs
is just a fancy way of writing:
system 'mkdir', '-p', @dirs
There are some people who like to use => instead of a comma to separate arguments that have different roles.
system mkdir => '-m 775' => '-p' => @dirs;
That indeed doesn't work. Because system has a list of arguments, no shell is involved, so mkdir is called, with -m 755 as a single argument. It should be two. Either use:
system 'mkdir', '-m', '775', '-p', @dirs;
or
system mkdir => -m => 775, -p => @dirs;
or, if you have sure @dirs doesn't contain any characters special to the shell:
system "mkdir -m 775 -p @dirs";
Perl --((8:>*