From: Jarkko Hietaniemi Date: Sun, 3 Mar 2002 15:06:55 +0000 (+0000) Subject: Remove the bogus "incorrect case" warning completely. X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=bfc3ae4fccf261f3ffcd77b5f339738dcd4ce290;p=p5sagit%2Fp5-mst-13.2.git Remove the bogus "incorrect case" warning completely. The problem exists, but the cure, in which ever form it will be, needs to be something more subtle. p4raw-id: //depot/perl@14962 --- diff --git a/op.c b/op.c index 1af8113..9b944c3 100644 --- a/op.c +++ b/op.c @@ -3451,13 +3451,22 @@ Perl_utilize(pTHX_ int aver, I32 floor, OP *version, OP *id, OP *arg) newSTATEOP(0, Nullch, imop) )); if (packname) { -#ifdef WIN32 - if (ckWARN(WARN_MISC) && !gv_stashpvn(packname, packlen, FALSE)) { - Perl_warner(aTHX_ WARN_MISC, - "Package `%s' not found " - "(did you use the incorrect case?)", packname); - } -#endif + /* The "did you use incorrect case?" warning used to be here. + * The problem is that on case-insensitive filesystems one + * might get false positives for "use" (and "require"): + * "use Strict" or "require CARP" will work. This causes + * portability problems for the script: in case-strict + * filesystems the script will stop working. + * + * The "incorrect case" warning checked whether "use Foo" + * imported "Foo" to your namespace, but that is wrong, too: + * there is no requirement nor promise in the language that + * a Foo.pm should or would contain anything in package "Foo". + * + * There is very little Configure-wise that can be done, either: + * the case-sensitivity of the build filesystem of Perl does not + * help in guessing the case-sensitivity of the runtime environment. + */ safefree(packname); } diff --git a/pod/perldiag.pod b/pod/perldiag.pod index 7f1e77e..f445d2d 100644 --- a/pod/perldiag.pod +++ b/pod/perldiag.pod @@ -2510,12 +2510,6 @@ package-specific handler. That name might have a meaning to Perl itself some day, even though it doesn't yet. Perhaps you should use a mixed-case attribute name, instead. See L. -=item Package '%s' not found (did you use the incorrect case?) - -(W misc) You included a package file via C, but the package name -did not match the file name. It's possible that you misspelled the -package name. - =item page overflow (W io) A single call to write() produced more lines than can fit on a