You are passing an undefined value for the second value.
That statement jumped out at me because even though in this particular case it's absolutely correct, with Perl's default behavior for sub arguments and in the absence of prototypes it wouldn't be. So just to go into more detail: Normally, the empty list at the end of the argument list, as in somefunc("aaaa", ()), would get flattened and all the sub somefunc would see in its @_ is "aaaa" and nothing else. However, in this case mkdir has a prototype of _;$ which is what causes the extra () argument to appear in @_ as undef.
In reply to Re^2: Unexpected warning in mkdir
by Anonymous Monk
in thread Unexpected warning in mkdir
by zdm
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |