in reply to Unexpected warning in mkdir

mkdir FILENAME,MASK mkdir FILENAME
You are passing an undefined value for the second value. Don't do that. :)

use warnings; mkdir( 'aaaa' );

jeffa

L-LL-L--L-LL-L--L-LL-L--
-R--R-RR-R--R-RR-R--R-RR
B--B--B--B--B--B--B--B--
H---H---H---H---H---H---
(the triplet paradiddle with high-hat)

Replies are listed 'Best First'.
Re^2: Unexpected warning in mkdir
by Anonymous Monk on May 12, 2015 at 21:14 UTC
    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.