1=head1 NAME 2 3perldiag - various Perl diagnostics 4 5=head1 DESCRIPTION 6 7These messages are classified as follows (listed in increasing order of 8desperation): 9 10 (W) A warning (optional). 11 (D) A deprecation (optional). 12 (S) A severe warning (default). 13 (F) A fatal error (trappable). 14 (P) An internal error you should never see (trappable). 15 (X) A very fatal error (nontrappable). 16 (A) An alien error message (not generated by Perl). 17 18The majority of messages from the first three classifications above 19(W, D & S) can be controlled using the C<warnings> pragma. 20 21If a message can be controlled by the C<warnings> pragma, its warning 22category is included with the classification letter in the description 23below. 24 25Optional warnings are enabled by using the C<warnings> pragma or the B<-w> 26and B<-W> switches. Warnings may be captured by setting C<$SIG{__WARN__}> 27to a reference to a routine that will be called on each warning instead 28of printing it. See L<perlvar>. 29 30Default warnings are always enabled unless they are explicitly disabled 31with the C<warnings> pragma or the B<-X> switch. 32 33Trappable errors may be trapped using the eval operator. See 34L<perlfunc/eval>. In almost all cases, warnings may be selectively 35disabled or promoted to fatal errors using the C<warnings> pragma. 36See L<warnings>. 37 38The messages are in alphabetical order, without regard to upper or 39lower-case. Some of these messages are generic. Spots that vary are 40denoted with a %s or other printf-style escape. These escapes are 41ignored by the alphabetical order, as are all characters other than 42letters. To look up your message, just ignore anything that is not a 43letter. 44 45=over 4 46 47=item accept() on closed socket %s 48 49(W closed) You tried to do an accept on a closed socket. Did you forget 50to check the return value of your socket() call? See 51L<perlfunc/accept>. 52 53=item Allocation too large: %lx 54 55(X) You can't allocate more than 64K on an MS-DOS machine. 56 57=item '!' allowed only after types %s 58 59(F) The '!' is allowed in pack() or unpack() only after certain types. 60See L<perlfunc/pack>. 61 62=item Ambiguous call resolved as CORE::%s(), qualify as such or use & 63 64(W ambiguous) A subroutine you have declared has the same name as a Perl 65keyword, and you have used the name without qualification for calling 66one or the other. Perl decided to call the builtin because the 67subroutine is not imported. 68 69To force interpretation as a subroutine call, either put an ampersand 70before the subroutine name, or qualify the name with its package. 71Alternatively, you can import the subroutine (or pretend that it's 72imported with the C<use subs> pragma). 73 74To silently interpret it as the Perl operator, use the C<CORE::> prefix 75on the operator (e.g. C<CORE::log($x)>) or declare the subroutine 76to be an object method (see L<perlsub/"Subroutine Attributes"> or 77L<attributes>). 78 79=item Ambiguous range in transliteration operator 80 81(F) You wrote something like C<tr/a-z-0//> which doesn't mean anything at 82all. To include a C<-> character in a transliteration, put it either 83first or last. (In the past, C<tr/a-z-0//> was synonymous with 84C<tr/a-y//>, which was probably not what you would have expected.) 85 86=item Ambiguous use of %s resolved as %s 87 88(W ambiguous)(S) You said something that may not be interpreted the way 89you thought. Normally it's pretty easy to disambiguate it by supplying 90a missing quote, operator, parenthesis pair or declaration. 91 92=item '|' and '<' may not both be specified on command line 93 94(F) An error peculiar to VMS. Perl does its own command line 95redirection, and found that STDIN was a pipe, and that you also tried to 96redirect STDIN using '<'. Only one STDIN stream to a customer, please. 97 98=item '|' and '>' may not both be specified on command line 99 100(F) An error peculiar to VMS. Perl does its own command line 101redirection, and thinks you tried to redirect stdout both to a file and 102into a pipe to another command. You need to choose one or the other, 103though nothing's stopping you from piping into a program or Perl script 104which 'splits' output into two streams, such as 105 106 open(OUT,">$ARGV[0]") or die "Can't write to $ARGV[0]: $!"; 107 while (<STDIN>) { 108 print; 109 print OUT; 110 } 111 close OUT; 112 113=item Applying %s to %s will act on scalar(%s) 114 115(W misc) The pattern match (C<//>), substitution (C<s///>), and 116transliteration (C<tr///>) operators work on scalar values. If you apply 117one of them to an array or a hash, it will convert the array or hash to 118a scalar value -- the length of an array, or the population info of a 119hash -- and then work on that scalar value. This is probably not what 120you meant to do. See L<perlfunc/grep> and L<perlfunc/map> for 121alternatives. 122 123=item Args must match #! line 124 125(F) The setuid emulator requires that the arguments Perl was invoked 126with match the arguments specified on the #! line. Since some systems 127impose a one-argument limit on the #! line, try combining switches; 128for example, turn C<-w -U> into C<-wU>. 129 130=item Arg too short for msgsnd 131 132(F) msgsnd() requires a string at least as long as sizeof(long). 133 134=item %s argument is not a HASH or ARRAY element 135 136(F) The argument to exists() must be a hash or array element, such as: 137 138 $foo{$bar} 139 $ref->{"susie"}[12] 140 141=item %s argument is not a HASH or ARRAY element or slice 142 143(F) The argument to delete() must be either a hash or array element, 144such as: 145 146 $foo{$bar} 147 $ref->{"susie"}[12] 148 149or a hash or array slice, such as: 150 151 @foo[$bar, $baz, $xyzzy] 152 @{$ref->[12]}{"susie", "queue"} 153 154=item %s argument is not a subroutine name 155 156(F) The argument to exists() for C<exists &sub> must be a subroutine 157name, and not a subroutine call. C<exists &sub()> will generate this 158error. 159 160=item Argument "%s" isn't numeric%s 161 162(W numeric) The indicated string was fed as an argument to an operator 163that expected a numeric value instead. If you're fortunate the message 164will identify which operator was so unfortunate. 165 166=item Argument list not closed for PerlIO layer "%s" 167 168(W layer) When pushing a layer with arguments onto the Perl I/O system you 169forgot the ) that closes the argument list. (Layers take care of transforming 170data between external and internal representations.) Perl stopped parsing 171the layer list at this point and did not attempt to push this layer. 172If your program didn't explicitly request the failing operation, it may be 173the result of the value of the environment variable PERLIO. 174 175=item Array @%s missing the @ in argument %d of %s() 176 177(D deprecated) Really old Perl let you omit the @ on array names in some 178spots. This is now heavily deprecated. 179 180=item assertion botched: %s 181 182(P) The malloc package that comes with Perl had an internal failure. 183 184=item Assertion failed: file "%s" 185 186(P) A general assertion failed. The file in question must be examined. 187 188=item Assignment to both a list and a scalar 189 190(F) If you assign to a conditional operator, the 2nd and 3rd arguments 191must either both be scalars or both be lists. Otherwise Perl won't 192know which context to supply to the right side. 193 194=item A thread exited while %d threads were running 195 196(W) When using threaded Perl, a thread (not necessarily the main 197thread) exited while there were still other threads running. 198Usually it's a good idea to first collect the return values of the 199created threads by joining them, and only then exit from the main 200thread. See L<threads>. 201 202=item Attempt to access disallowed key '%s' in a restricted hash 203 204(F) The failing code has attempted to get or set a key which is not in 205the current set of allowed keys of a restricted hash. 206 207=item Attempt to bless into a reference 208 209(F) The CLASSNAME argument to the bless() operator is expected to be 210the name of the package to bless the resulting object into. You've 211supplied instead a reference to something: perhaps you wrote 212 213 bless $self, $proto; 214 215when you intended 216 217 bless $self, ref($proto) || $proto; 218 219If you actually want to bless into the stringified version 220of the reference supplied, you need to stringify it yourself, for 221example by: 222 223 bless $self, "$proto"; 224 225=item Attempt to delete disallowed key '%s' from a restricted hash 226 227(F) The failing code attempted to delete from a restricted hash a key 228which is not in its key set. 229 230=item Attempt to delete readonly key '%s' from a restricted hash 231 232(F) The failing code attempted to delete a key whose value has been 233declared readonly from a restricted hash. 234 235=item Attempt to free non-arena SV: 0x%lx 236 237(P internal) All SV objects are supposed to be allocated from arenas 238that will be garbage collected on exit. An SV was discovered to be 239outside any of those arenas. 240 241=item Attempt to free nonexistent shared string 242 243(P internal) Perl maintains a reference counted internal table of 244strings to optimize the storage and access of hash keys and other 245strings. This indicates someone tried to decrement the reference count 246of a string that can no longer be found in the table. 247 248=item Attempt to free temp prematurely 249 250(W debugging) Mortalized values are supposed to be freed by the 251free_tmps() routine. This indicates that something else is freeing the 252SV before the free_tmps() routine gets a chance, which means that the 253free_tmps() routine will be freeing an unreferenced scalar when it does 254try to free it. 255 256=item Attempt to free unreferenced glob pointers 257 258(P internal) The reference counts got screwed up on symbol aliases. 259 260=item Attempt to free unreferenced scalar 261 262(W internal) Perl went to decrement the reference count of a scalar to 263see if it would go to 0, and discovered that it had already gone to 0 264earlier, and should have been freed, and in fact, probably was freed. 265This could indicate that SvREFCNT_dec() was called too many times, or 266that SvREFCNT_inc() was called too few times, or that the SV was 267mortalized when it shouldn't have been, or that memory has been 268corrupted. 269 270=item Attempt to join self 271 272(F) You tried to join a thread from within itself, which is an 273impossible task. You may be joining the wrong thread, or you may need 274to move the join() to some other thread. 275 276=item Attempt to pack pointer to temporary value 277 278(W pack) You tried to pass a temporary value (like the result of a 279function, or a computed expression) to the "p" pack() template. This 280means the result contains a pointer to a location that could become 281invalid anytime, even before the end of the current statement. Use 282literals or global values as arguments to the "p" pack() template to 283avoid this warning. 284 285=item Attempt to use reference as lvalue in substr 286 287(W substr) You supplied a reference as the first argument to substr() 288used as an lvalue, which is pretty strange. Perhaps you forgot to 289dereference it first. See L<perlfunc/substr>. 290 291=item Bad arg length for %s, is %d, should be %s 292 293(F) You passed a buffer of the wrong size to one of msgctl(), semctl() 294or shmctl(). In C parlance, the correct sizes are, respectively, 295S<sizeof(struct msqid_ds *)>, S<sizeof(struct semid_ds *)>, and 296S<sizeof(struct shmid_ds *)>. 297 298=item Bad evalled substitution pattern 299 300(F) You've used the C</e> switch to evaluate the replacement for a 301substitution, but perl found a syntax error in the code to evaluate, 302most likely an unexpected right brace '}'. 303 304=item Bad filehandle: %s 305 306(F) A symbol was passed to something wanting a filehandle, but the 307symbol has no filehandle associated with it. Perhaps you didn't do an 308open(), or did it in another package. 309 310=item Bad free() ignored 311 312(S malloc) An internal routine called free() on something that had never 313been malloc()ed in the first place. Mandatory, but can be disabled by 314setting environment variable C<PERL_BADFREE> to 0. 315 316This message can be seen quite often with DB_File on systems with "hard" 317dynamic linking, like C<AIX> and C<OS/2>. It is a bug of C<Berkeley DB> 318which is left unnoticed if C<DB> uses I<forgiving> system malloc(). 319 320=item Bad hash 321 322(P) One of the internal hash routines was passed a null HV pointer. 323 324=item Bad index while coercing array into hash 325 326(F) The index looked up in the hash found as the 0'th element of a 327pseudo-hash is not legal. Index values must be at 1 or greater. 328See L<perlref>. 329 330=item Badly placed ()'s 331 332(A) You've accidentally run your script through B<csh> instead 333of Perl. Check the #! line, or manually feed your script into 334Perl yourself. 335 336=item Bad name after %s:: 337 338(F) You started to name a symbol by using a package prefix, and then 339didn't finish the symbol. In particular, you can't interpolate outside 340of quotes, so 341 342 $var = 'myvar'; 343 $sym = mypack::$var; 344 345is not the same as 346 347 $var = 'myvar'; 348 $sym = "mypack::$var"; 349 350=item Bad realloc() ignored 351 352(S malloc) An internal routine called realloc() on something that had 353never been malloc()ed in the first place. Mandatory, but can be disabled 354by setting environment variable C<PERL_BADFREE> to 1. 355 356=item Bad symbol for array 357 358(P) An internal request asked to add an array entry to something that 359wasn't a symbol table entry. 360 361=item Bad symbol for filehandle 362 363(P) An internal request asked to add a filehandle entry to something 364that wasn't a symbol table entry. 365 366=item Bad symbol for hash 367 368(P) An internal request asked to add a hash entry to something that 369wasn't a symbol table entry. 370 371=item Bareword found in conditional 372 373(W bareword) The compiler found a bareword where it expected a 374conditional, which often indicates that an || or && was parsed as part 375of the last argument of the previous construct, for example: 376 377 open FOO || die; 378 379It may also indicate a misspelled constant that has been interpreted as 380a bareword: 381 382 use constant TYPO => 1; 383 if (TYOP) { print "foo" } 384 385The C<strict> pragma is useful in avoiding such errors. 386 387=item Bareword "%s" not allowed while "strict subs" in use 388 389(F) With "strict subs" in use, a bareword is only allowed as a 390subroutine identifier, in curly brackets or to the left of the "=>" 391symbol. Perhaps you need to predeclare a subroutine? 392 393=item Bareword "%s" refers to nonexistent package 394 395(W bareword) You used a qualified bareword of the form C<Foo::>, but the 396compiler saw no other uses of that namespace before that point. Perhaps 397you need to predeclare a package? 398 399=item BEGIN failed--compilation aborted 400 401(F) An untrapped exception was raised while executing a BEGIN 402subroutine. Compilation stops immediately and the interpreter is 403exited. 404 405=item BEGIN not safe after errors--compilation aborted 406 407(F) Perl found a C<BEGIN {}> subroutine (or a C<use> directive, which 408implies a C<BEGIN {}>) after one or more compilation errors had already 409occurred. Since the intended environment for the C<BEGIN {}> could not 410be guaranteed (due to the errors), and since subsequent code likely 411depends on its correct operation, Perl just gave up. 412 413=item \1 better written as $1 414 415(W syntax) Outside of patterns, backreferences live on as variables. 416The use of backslashes is grandfathered on the right-hand side of a 417substitution, but stylistically it's better to use the variable form 418because other Perl programmers will expect it, and it works better if 419there are more than 9 backreferences. 420 421=item Binary number > 0b11111111111111111111111111111111 non-portable 422 423(W portable) The binary number you specified is larger than 2**32-1 424(4294967295) and therefore non-portable between systems. See 425L<perlport> for more on portability concerns. 426 427=item bind() on closed socket %s 428 429(W closed) You tried to do a bind on a closed socket. Did you forget to 430check the return value of your socket() call? See L<perlfunc/bind>. 431 432=item binmode() on closed filehandle %s 433 434(W unopened) You tried binmode() on a filehandle that was never opened. 435Check you control flow and number of arguments. 436 437=item Bit vector size > 32 non-portable 438 439(W portable) Using bit vector sizes larger than 32 is non-portable. 440 441=item Bizarre copy of %s in %s 442 443(P) Perl detected an attempt to copy an internal value that is not 444copyable. 445 446=item Buffer overflow in prime_env_iter: %s 447 448(W internal) A warning peculiar to VMS. While Perl was preparing to 449iterate over %ENV, it encountered a logical name or symbol definition 450which was too long, so it was truncated to the string shown. 451 452=item Callback called exit 453 454(F) A subroutine invoked from an external package via call_sv() 455exited by calling exit. 456 457=item %s() called too early to check prototype 458 459(W prototype) You've called a function that has a prototype before the 460parser saw a definition or declaration for it, and Perl could not check 461that the call conforms to the prototype. You need to either add an 462early prototype declaration for the subroutine in question, or move the 463subroutine definition ahead of the call to get proper prototype 464checking. Alternatively, if you are certain that you're calling the 465function correctly, you may put an ampersand before the name to avoid 466the warning. See L<perlsub>. 467 468=item Cannot compress integer in pack 469 470(F) An argument to pack("w",...) was too large to compress. The BER 471compressed integer format can only be used with positive integers, and you 472attempted to compress Infinity or a very large number (> 1e308). 473See L<perlfunc/pack>. 474 475=item Cannot compress negative numbers in pack 476 477(F) An argument to pack("w",...) was negative. The BER compressed integer 478format can only be used with positive integers. See L<perlfunc/pack>. 479 480=item Can only compress unsigned integers in pack 481 482(F) An argument to pack("w",...) was not an integer. The BER compressed 483integer format can only be used with positive integers, and you attempted 484to compress something else. See L<perlfunc/pack>. 485 486=item Can't bless non-reference value 487 488(F) Only hard references may be blessed. This is how Perl "enforces" 489encapsulation of objects. See L<perlobj>. 490 491=item Can't call method "%s" in empty package "%s" 492 493(F) You called a method correctly, and it correctly indicated a package 494functioning as a class, but that package doesn't have ANYTHING defined 495in it, let alone methods. See L<perlobj>. 496 497=item Can't call method "%s" on an undefined value 498 499(F) You used the syntax of a method call, but the slot filled by the 500object reference or package name contains an undefined value. Something 501like this will reproduce the error: 502 503 $BADREF = undef; 504 process $BADREF 1,2,3; 505 $BADREF->process(1,2,3); 506 507=item Can't call method "%s" on unblessed reference 508 509(F) A method call must know in what package it's supposed to run. It 510ordinarily finds this out from the object reference you supply, but you 511didn't supply an object reference in this case. A reference isn't an 512object reference until it has been blessed. See L<perlobj>. 513 514=item Can't call method "%s" without a package or object reference 515 516(F) You used the syntax of a method call, but the slot filled by the 517object reference or package name contains an expression that returns a 518defined value which is neither an object reference nor a package name. 519Something like this will reproduce the error: 520 521 $BADREF = 42; 522 process $BADREF 1,2,3; 523 $BADREF->process(1,2,3); 524 525=item Can't chdir to %s 526 527(F) You called C<perl -x/foo/bar>, but C</foo/bar> is not a directory 528that you can chdir to, possibly because it doesn't exist. 529 530=item Can't check filesystem of script "%s" for nosuid 531 532(P) For some reason you can't check the filesystem of the script for 533nosuid. 534 535=item Can't coerce array into hash 536 537(F) You used an array where a hash was expected, but the array has no 538information on how to map from keys to array indices. You can do that 539only with arrays that have a hash reference at index 0. 540 541=item Can't coerce %s to integer in %s 542 543(F) Certain types of SVs, in particular real symbol table entries 544(typeglobs), can't be forced to stop being what they are. So you can't 545say things like: 546 547 *foo += 1; 548 549You CAN say 550 551 $foo = *foo; 552 $foo += 1; 553 554but then $foo no longer contains a glob. 555 556=item Can't coerce %s to number in %s 557 558(F) Certain types of SVs, in particular real symbol table entries 559(typeglobs), can't be forced to stop being what they are. 560 561=item Can't coerce %s to string in %s 562 563(F) Certain types of SVs, in particular real symbol table entries 564(typeglobs), can't be forced to stop being what they are. 565 566=item Can't create pipe mailbox 567 568(P) An error peculiar to VMS. The process is suffering from exhausted 569quotas or other plumbing problems. 570 571=item Can't declare class for non-scalar %s in "%s" 572 573(F) Currently, only scalar variables can be declared with a specific 574class qualifier in a "my" or "our" declaration. The semantics may be 575extended for other types of variables in future. 576 577=item Can't declare %s in "%s" 578 579(F) Only scalar, array, and hash variables may be declared as "my" or 580"our" variables. They must have ordinary identifiers as names. 581 582=item Can't do inplace edit: %s is not a regular file 583 584(S inplace) You tried to use the B<-i> switch on a special file, such as 585a file in /dev, or a FIFO. The file was ignored. 586 587=item Can't do inplace edit on %s: %s 588 589(S inplace) The creation of the new file failed for the indicated 590reason. 591 592=item Can't do inplace edit without backup 593 594(F) You're on a system such as MS-DOS that gets confused if you try 595reading from a deleted (but still opened) file. You have to say 596C<-i.bak>, or some such. 597 598=item Can't do inplace edit: %s would not be unique 599 600(S inplace) Your filesystem does not support filenames longer than 14 601characters and Perl was unable to create a unique filename during 602inplace editing with the B<-i> switch. The file was ignored. 603 604=item Can't do {n,m} with n > m in regex; marked by <-- HERE in m/%s/ 605 606(F) Minima must be less than or equal to maxima. If you really want your 607regexp to match something 0 times, just put {0}. The <-- HERE shows in the 608regular expression about where the problem was discovered. See L<perlre>. 609 610=item Can't do setegid! 611 612(P) The setegid() call failed for some reason in the setuid emulator of 613suidperl. 614 615=item Can't do seteuid! 616 617(P) The setuid emulator of suidperl failed for some reason. 618 619=item Can't do setuid 620 621(F) This typically means that ordinary perl tried to exec suidperl to do 622setuid emulation, but couldn't exec it. It looks for a name of the form 623sperl5.000 in the same directory that the perl executable resides under 624the name perl5.000, typically /usr/local/bin on Unix machines. If the 625file is there, check the execute permissions. If it isn't, ask your 626sysadmin why he and/or she removed it. 627 628=item Can't do waitpid with flags 629 630(F) This machine doesn't have either waitpid() or wait4(), so only 631waitpid() without flags is emulated. 632 633=item Can't emulate -%s on #! line 634 635(F) The #! line specifies a switch that doesn't make sense at this 636point. For example, it'd be kind of silly to put a B<-x> on the #! 637line. 638 639=item Can't exec "%s": %s 640 641(W exec) A system(), exec(), or piped open call could not execute the 642named program for the indicated reason. Typical reasons include: the 643permissions were wrong on the file, the file wasn't found in 644C<$ENV{PATH}>, the executable in question was compiled for another 645architecture, or the #! line in a script points to an interpreter that 646can't be run for similar reasons. (Or maybe your system doesn't support 647#! at all.) 648 649=item Can't exec %s 650 651(F) Perl was trying to execute the indicated program for you because 652that's what the #! line said. If that's not what you wanted, you may 653need to mention "perl" on the #! line somewhere. 654 655=item Can't execute %s 656 657(F) You used the B<-S> switch, but the copies of the script to execute 658found in the PATH did not have correct permissions. 659 660=item Can't find an opnumber for "%s" 661 662(F) A string of a form C<CORE::word> was given to prototype(), but there 663is no builtin with the name C<word>. 664 665=item Can't find %s character property "%s" 666 667(F) You used C<\p{}> or C<\P{}> but the character property by that name 668could not be found. Maybe you misspelled the name of the property 669(remember that the names of character properties consist only of 670alphanumeric characters), or maybe you forgot the C<Is> or C<In> prefix? 671 672=item Can't find label %s 673 674(F) You said to goto a label that isn't mentioned anywhere that it's 675possible for us to go to. See L<perlfunc/goto>. 676 677=item Can't find %s on PATH 678 679(F) You used the B<-S> switch, but the script to execute could not be 680found in the PATH. 681 682=item Can't find %s on PATH, '.' not in PATH 683 684(F) You used the B<-S> switch, but the script to execute could not be 685found in the PATH, or at least not with the correct permissions. The 686script exists in the current directory, but PATH prohibits running it. 687 688=item Can't find %s property definition %s 689 690(F) You may have tried to use C<\p> which means a Unicode property (for 691example C<\p{Lu}> is all uppercase letters). If you did mean to use a 692Unicode property, see L<perlunicode> for the list of known properties. 693If you didn't mean to use a Unicode property, escape the C<\p>, either 694by C<\\p> (just the C<\p>) or by C<\Q\p> (the rest of the string, until 695possible C<\E>). 696 697=item Can't find string terminator %s anywhere before EOF 698 699(F) Perl strings can stretch over multiple lines. This message means 700that the closing delimiter was omitted. Because bracketed quotes count 701nesting levels, the following is missing its final parenthesis: 702 703 print q(The character '(' starts a side comment.); 704 705If you're getting this error from a here-document, you may have included 706unseen whitespace before or after your closing tag. A good programmer's 707editor will have a way to help you find these characters. 708 709=item Can't fork 710 711(F) A fatal error occurred while trying to fork while opening a 712pipeline. 713 714=item Can't get filespec - stale stat buffer? 715 716(S) A warning peculiar to VMS. This arises because of the difference 717between access checks under VMS and under the Unix model Perl assumes. 718Under VMS, access checks are done by filename, rather than by bits in 719the stat buffer, so that ACLs and other protections can be taken into 720account. Unfortunately, Perl assumes that the stat buffer contains all 721the necessary information, and passes it, instead of the filespec, to 722the access checking routine. It will try to retrieve the filespec using 723the device name and FID present in the stat buffer, but this works only 724if you haven't made a subsequent call to the CRTL stat() routine, 725because the device name is overwritten with each call. If this warning 726appears, the name lookup failed, and the access checking routine gave up 727and returned FALSE, just to be conservative. (Note: The access checking 728routine knows about the Perl C<stat> operator and file tests, so you 729shouldn't ever see this warning in response to a Perl command; it arises 730only if some internal code takes stat buffers lightly.) 731 732=item Can't get pipe mailbox device name 733 734(P) An error peculiar to VMS. After creating a mailbox to act as a 735pipe, Perl can't retrieve its name for later use. 736 737=item Can't get SYSGEN parameter value for MAXBUF 738 739(P) An error peculiar to VMS. Perl asked $GETSYI how big you want your 740mailbox buffers to be, and didn't get an answer. 741 742=item Can't "goto" into the middle of a foreach loop 743 744(F) A "goto" statement was executed to jump into the middle of a foreach 745loop. You can't get there from here. See L<perlfunc/goto>. 746 747=item Can't "goto" out of a pseudo block 748 749(F) A "goto" statement was executed to jump out of what might look like 750a block, except that it isn't a proper block. This usually occurs if 751you tried to jump out of a sort() block or subroutine, which is a no-no. 752See L<perlfunc/goto>. 753 754=item Can't goto subroutine from an eval-string 755 756(F) The "goto subroutine" call can't be used to jump out of an eval 757"string". (You can use it to jump out of an eval {BLOCK}, but you 758probably don't want to.) 759 760=item Can't goto subroutine outside a subroutine 761 762(F) The deeply magical "goto subroutine" call can only replace one 763subroutine call for another. It can't manufacture one out of whole 764cloth. In general you should be calling it out of only an AUTOLOAD 765routine anyway. See L<perlfunc/goto>. 766 767=item Can't ignore signal CHLD, forcing to default 768 769(W signal) Perl has detected that it is being run with the SIGCHLD 770signal (sometimes known as SIGCLD) disabled. Since disabling this 771signal will interfere with proper determination of exit status of child 772processes, Perl has reset the signal to its default value. This 773situation typically indicates that the parent program under which Perl 774may be running (e.g. cron) is being very careless. 775 776=item Can't "last" outside a loop block 777 778(F) A "last" statement was executed to break out of the current block, 779except that there's this itty bitty problem called there isn't a current 780block. Note that an "if" or "else" block doesn't count as a "loopish" 781block, as doesn't a block given to sort(), map() or grep(). You can 782usually double the curlies to get the same effect though, because the 783inner curlies will be considered a block that loops once. See 784L<perlfunc/last>. 785 786=item Can't localize lexical variable %s 787 788(F) You used local on a variable name that was previously declared as a 789lexical variable using "my". This is not allowed. If you want to 790localize a package variable of the same name, qualify it with the 791package name. 792 793=item Can't localize pseudo-hash element 794 795(F) You said something like C<< local $ar->{'key'} >>, where $ar is a 796reference to a pseudo-hash. That hasn't been implemented yet, but you 797can get a similar effect by localizing the corresponding array element 798directly -- C<< local $ar->[$ar->[0]{'key'}] >>. 799 800=item Can't localize through a reference 801 802(F) You said something like C<local $$ref>, which Perl can't currently 803handle, because when it goes to restore the old value of whatever $ref 804pointed to after the scope of the local() is finished, it can't be sure 805that $ref will still be a reference. 806 807=item Can't locate %s 808 809(F) You said to C<do> (or C<require>, or C<use>) a file that couldn't be 810found. Perl looks for the file in all the locations mentioned in @INC, 811unless the file name included the full path to the file. Perhaps you 812need to set the PERL5LIB or PERL5OPT environment variable to say where 813the extra library is, or maybe the script needs to add the library name 814to @INC. Or maybe you just misspelled the name of the file. See 815L<perlfunc/require> and L<lib>. 816 817=item Can't locate auto/%s.al in @INC 818 819(F) A function (or method) was called in a package which allows 820autoload, but there is no function to autoload. Most probable causes 821are a misprint in a function/method name or a failure to C<AutoSplit> 822the file, say, by doing C<make install>. 823 824=item Can't locate object method "%s" via package "%s" 825 826(F) You called a method correctly, and it correctly indicated a package 827functioning as a class, but that package doesn't define that particular 828method, nor does any of its base classes. See L<perlobj>. 829 830=item Can't locate package %s for @%s::ISA 831 832(W syntax) The @ISA array contained the name of another package that 833doesn't seem to exist. 834 835=item Can't locate PerlIO%s 836 837(F) You tried to use in open() a PerlIO layer that does not exist, 838e.g. open(FH, ">:nosuchlayer", "somefile"). 839 840=item Can't make list assignment to \%ENV on this system 841 842(F) List assignment to %ENV is not supported on some systems, notably 843VMS. 844 845=item Can't modify %s in %s 846 847(F) You aren't allowed to assign to the item indicated, or otherwise try 848to change it, such as with an auto-increment. 849 850=item Can't modify nonexistent substring 851 852(P) The internal routine that does assignment to a substr() was handed 853a NULL. 854 855=item Can't modify non-lvalue subroutine call 856 857(F) Subroutines meant to be used in lvalue context should be declared as 858such, see L<perlsub/"Lvalue subroutines">. 859 860=item Can't msgrcv to read-only var 861 862(F) The target of a msgrcv must be modifiable to be used as a receive 863buffer. 864 865=item Can't "next" outside a loop block 866 867(F) A "next" statement was executed to reiterate the current block, but 868there isn't a current block. Note that an "if" or "else" block doesn't 869count as a "loopish" block, as doesn't a block given to sort(), map() or 870grep(). You can usually double the curlies to get the same effect 871though, because the inner curlies will be considered a block that loops 872once. See L<perlfunc/next>. 873 874=item Can't open %s: %s 875 876(S inplace) The implicit opening of a file through use of the C<< <> >> 877filehandle, either implicitly under the C<-n> or C<-p> command-line 878switches, or explicitly, failed for the indicated reason. Usually this 879is because you don't have read permission for a file which you named on 880the command line. 881 882=item Can't open a reference 883 884(W io) You tried to open a scalar reference for reading or writing, 885using the 3-arg open() syntax : 886 887 open FH, '>', $ref; 888 889but your version of perl is compiled without perlio, and this form of 890open is not supported. 891 892=item Can't open bidirectional pipe 893 894(W pipe) You tried to say C<open(CMD, "|cmd|")>, which is not supported. 895You can try any of several modules in the Perl library to do this, such 896as IPC::Open2. Alternately, direct the pipe's output to a file using 897">", and then read it in under a different file handle. 898 899=item Can't open error file %s as stderr 900 901(F) An error peculiar to VMS. Perl does its own command line 902redirection, and couldn't open the file specified after '2>' or '2>>' on 903the command line for writing. 904 905=item Can't open input file %s as stdin 906 907(F) An error peculiar to VMS. Perl does its own command line 908redirection, and couldn't open the file specified after '<' on the 909command line for reading. 910 911=item Can't open output file %s as stdout 912 913(F) An error peculiar to VMS. Perl does its own command line 914redirection, and couldn't open the file specified after '>' or '>>' on 915the command line for writing. 916 917=item Can't open output pipe (name: %s) 918 919(P) An error peculiar to VMS. Perl does its own command line 920redirection, and couldn't open the pipe into which to send data destined 921for stdout. 922 923=item Can't open perl script%s 924 925(F) The script you specified can't be opened for the indicated reason. 926 927=item Can't read CRTL environ 928 929(S) A warning peculiar to VMS. Perl tried to read an element of %ENV 930from the CRTL's internal environment array and discovered the array was 931missing. You need to figure out where your CRTL misplaced its environ 932or define F<PERL_ENV_TABLES> (see L<perlvms>) so that environ is not 933searched. 934 935=item Can't redefine active sort subroutine %s 936 937(F) Perl optimizes the internal handling of sort subroutines and keeps 938pointers into them. You tried to redefine one such sort subroutine when 939it was currently active, which is not allowed. If you really want to do 940this, you should write C<sort { &func } @x> instead of C<sort func @x>. 941 942=item Can't "redo" outside a loop block 943 944(F) A "redo" statement was executed to restart the current block, but 945there isn't a current block. Note that an "if" or "else" block doesn't 946count as a "loopish" block, as doesn't a block given to sort(), map() 947or grep(). You can usually double the curlies to get the same effect 948though, because the inner curlies will be considered a block that 949loops once. See L<perlfunc/redo>. 950 951=item Can't remove %s: %s, skipping file 952 953(S inplace) You requested an inplace edit without creating a backup 954file. Perl was unable to remove the original file to replace it with 955the modified file. The file was left unmodified. 956 957=item Can't rename %s to %s: %s, skipping file 958 959(S inplace) The rename done by the B<-i> switch failed for some reason, 960probably because you don't have write permission to the directory. 961 962=item Can't reopen input pipe (name: %s) in binary mode 963 964(P) An error peculiar to VMS. Perl thought stdin was a pipe, and tried 965to reopen it to accept binary data. Alas, it failed. 966 967=item Can't resolve method `%s' overloading `%s' in package `%s' 968 969(F|P) Error resolving overloading specified by a method name (as opposed 970to a subroutine reference): no such method callable via the package. If 971method name is C<???>, this is an internal error. 972 973=item Can't reswap uid and euid 974 975(P) The setreuid() call failed for some reason in the setuid emulator of 976suidperl. 977 978=item Can't return %s from lvalue subroutine 979 980(F) Perl detected an attempt to return illegal lvalues (such as 981temporary or readonly values) from a subroutine used as an lvalue. This 982is not allowed. 983 984=item Can't return outside a subroutine 985 986(F) The return statement was executed in mainline code, that is, where 987there was no subroutine call to return out of. See L<perlsub>. 988 989=item Can't return %s to lvalue scalar context 990 991(F) You tried to return a complete array or hash from an lvalue subroutine, 992but you called the subroutine in a way that made Perl think you meant 993to return only one value. You probably meant to write parentheses around 994the call to the subroutine, which tell Perl that the call should be in 995list context. 996 997=item Can't stat script "%s" 998 999(P) For some reason you can't fstat() the script even though you have it 1000open already. Bizarre. 1001 1002=item Can't swap uid and euid 1003 1004(P) The setreuid() call failed for some reason in the setuid emulator of 1005suidperl. 1006 1007=item Can't take log of %g 1008 1009(F) For ordinary real numbers, you can't take the logarithm of a 1010negative number or zero. There's a Math::Complex package that comes 1011standard with Perl, though, if you really want to do that for the 1012negative numbers. 1013 1014=item Can't take sqrt of %g 1015 1016(F) For ordinary real numbers, you can't take the square root of a 1017negative number. There's a Math::Complex package that comes standard 1018with Perl, though, if you really want to do that. 1019 1020=item Can't undef active subroutine 1021 1022(F) You can't undefine a routine that's currently running. You can, 1023however, redefine it while it's running, and you can even undef the 1024redefined subroutine while the old routine is running. Go figure. 1025 1026=item Can't unshift 1027 1028(F) You tried to unshift an "unreal" array that can't be unshifted, such 1029as the main Perl stack. 1030 1031=item Can't upgrade that kind of scalar 1032 1033(P) The internal sv_upgrade routine adds "members" to an SV, making it 1034into a more specialized kind of SV. The top several SV types are so 1035specialized, however, that they cannot be interconverted. This message 1036indicates that such a conversion was attempted. 1037 1038=item Can't upgrade to undef 1039 1040(P) The undefined SV is the bottom of the totem pole, in the scheme of 1041upgradability. Upgrading to undef indicates an error in the code 1042calling sv_upgrade. 1043 1044=item Can't use anonymous symbol table for method lookup 1045 1046(P) The internal routine that does method lookup was handed a symbol 1047table that doesn't have a name. Symbol tables can become anonymous 1048for example by undefining stashes: C<undef %Some::Package::>. 1049 1050=item Can't use an undefined value as %s reference 1051 1052(F) A value used as either a hard reference or a symbolic reference must 1053be a defined value. This helps to delurk some insidious errors. 1054 1055=item Can't use bareword ("%s") as %s ref while "strict refs" in use 1056 1057(F) Only hard references are allowed by "strict refs". Symbolic 1058references are disallowed. See L<perlref>. 1059 1060=item Can't use %! because Errno.pm is not available 1061 1062(F) The first time the %! hash is used, perl automatically loads the 1063Errno.pm module. The Errno module is expected to tie the %! hash to 1064provide symbolic names for C<$!> errno values. 1065 1066=item Can't use %s for loop variable 1067 1068(F) Only a simple scalar variable may be used as a loop variable on a 1069foreach. 1070 1071=item Can't use global %s in "my" 1072 1073(F) You tried to declare a magical variable as a lexical variable. This 1074is not allowed, because the magic can be tied to only one location 1075(namely the global variable) and it would be incredibly confusing to 1076have variables in your program that looked like magical variables but 1077weren't. 1078 1079=item Can't use "my %s" in sort comparison 1080 1081(F) The global variables $a and $b are reserved for sort comparisons. 1082You mentioned $a or $b in the same line as the <=> or cmp operator, 1083and the variable had earlier been declared as a lexical variable. 1084Either qualify the sort variable with the package name, or rename the 1085lexical variable. 1086 1087=item Can't use %s ref as %s ref 1088 1089(F) You've mixed up your reference types. You have to dereference a 1090reference of the type needed. You can use the ref() function to 1091test the type of the reference, if need be. 1092 1093=item Can't use string ("%s") as %s ref while "strict refs" in use 1094 1095(F) Only hard references are allowed by "strict refs". Symbolic 1096references are disallowed. See L<perlref>. 1097 1098=item Can't use subscript on %s 1099 1100(F) The compiler tried to interpret a bracketed expression as a 1101subscript. But to the left of the brackets was an expression that 1102didn't look like an array reference, or anything else subscriptable. 1103 1104=item Can't use \%c to mean $%c in expression 1105 1106(W syntax) In an ordinary expression, backslash is a unary operator that 1107creates a reference to its argument. The use of backslash to indicate a 1108backreference to a matched substring is valid only as part of a regular 1109expression pattern. Trying to do this in ordinary Perl code produces a 1110value that prints out looking like SCALAR(0xdecaf). Use the $1 form 1111instead. 1112 1113=item Can't weaken a nonreference 1114 1115(F) You attempted to weaken something that was not a reference. Only 1116references can be weakened. 1117 1118=item Can't x= to read-only value 1119 1120(F) You tried to repeat a constant value (often the undefined value) 1121with an assignment operator, which implies modifying the value itself. 1122Perhaps you need to copy the value to a temporary, and repeat that. 1123 1124=item Character in "C" format wrapped in pack 1125 1126(W pack) You said 1127 1128 pack("C", $x) 1129 1130where $x is either less than 0 or more than 255; the C<"C"> format is 1131only for encoding native operating system characters (ASCII, EBCDIC, 1132and so on) and not for Unicode characters, so Perl behaved as if you meant 1133 1134 pack("C", $x & 255) 1135 1136If you actually want to pack Unicode codepoints, use the C<"U"> format 1137instead. 1138 1139=item Character in "c" format wrapped in pack 1140 1141(W pack) You said 1142 1143 pack("c", $x) 1144 1145where $x is either less than -128 or more than 127; the C<"c"> format 1146is only for encoding native operating system characters (ASCII, EBCDIC, 1147and so on) and not for Unicode characters, so Perl behaved as if you meant 1148 1149 pack("c", $x & 255); 1150 1151If you actually want to pack Unicode codepoints, use the C<"U"> format 1152instead. 1153 1154=item close() on unopened filehandle %s 1155 1156(W unopened) You tried to close a filehandle that was never opened. 1157 1158=item Code missing after '/' 1159 1160(F) You had a (sub-)template that ends with a '/'. There must be another 1161template code following the slash. See L<perlfunc/pack>. 1162 1163=item %s: Command not found 1164 1165(A) You've accidentally run your script through B<csh> instead of Perl. 1166Check the #! line, or manually feed your script into Perl yourself. 1167 1168=item Compilation failed in require 1169 1170(F) Perl could not compile a file specified in a C<require> statement. 1171Perl uses this generic message when none of the errors that it 1172encountered were severe enough to halt compilation immediately. 1173 1174=item Complex regular subexpression recursion limit (%d) exceeded 1175 1176(W regexp) The regular expression engine uses recursion in complex 1177situations where back-tracking is required. Recursion depth is limited 1178to 32766, or perhaps less in architectures where the stack cannot grow 1179arbitrarily. ("Simple" and "medium" situations are handled without 1180recursion and are not subject to a limit.) Try shortening the string 1181under examination; looping in Perl code (e.g. with C<while>) rather than 1182in the regular expression engine; or rewriting the regular expression so 1183that it is simpler or backtracks less. (See L<perlfaq2> for information 1184on I<Mastering Regular Expressions>.) 1185 1186=item cond_broadcast() called on unlocked variable 1187 1188(W threads) Within a thread-enabled program, you tried to call 1189cond_broadcast() on a variable which wasn't locked. The cond_broadcast() 1190function is used to wake up another thread that is waiting in a 1191cond_wait(). To ensure that the signal isn't sent before the other thread 1192has a chance to enter the wait, it is usual for the signaling thread to 1193first wait for a lock on variable. This lock attempt will only succeed 1194after the other thread has entered cond_wait() and thus relinquished the 1195lock. 1196 1197=item cond_signal() called on unlocked variable 1198 1199(W threads) Within a thread-enabled program, you tried to call 1200cond_signal() on a variable which wasn't locked. The cond_signal() 1201function is used to wake up another thread that is waiting in a 1202cond_wait(). To ensure that the signal isn't sent before the other thread 1203has a chance to enter the wait, it is usual for the signaling thread to 1204first wait for a lock on variable. This lock attempt will only succeed 1205after the other thread has entered cond_wait() and thus relinquished the 1206lock. 1207 1208=item connect() on closed socket %s 1209 1210(W closed) You tried to do a connect on a closed socket. Did you forget 1211to check the return value of your socket() call? See 1212L<perlfunc/connect>. 1213 1214=item Constant(%s)%s: %s 1215 1216(F) The parser found inconsistencies either while attempting to define 1217an overloaded constant, or when trying to find the character name 1218specified in the C<\N{...}> escape. Perhaps you forgot to load the 1219corresponding C<overload> or C<charnames> pragma? See L<charnames> and 1220L<overload>. 1221 1222=item Constant is not %s reference 1223 1224(F) A constant value (perhaps declared using the C<use constant> pragma) 1225is being dereferenced, but it amounts to the wrong type of reference. 1226The message indicates the type of reference that was expected. This 1227usually indicates a syntax error in dereferencing the constant value. 1228See L<perlsub/"Constant Functions"> and L<constant>. 1229 1230=item Constant subroutine %s redefined 1231 1232(S) You redefined a subroutine which had previously been 1233eligible for inlining. See L<perlsub/"Constant Functions"> for 1234commentary and workarounds. 1235 1236=item Constant subroutine %s undefined 1237 1238(W misc) You undefined a subroutine which had previously been eligible 1239for inlining. See L<perlsub/"Constant Functions"> for commentary and 1240workarounds. 1241 1242=item Copy method did not return a reference 1243 1244(F) The method which overloads "=" is buggy. See 1245L<overload/Copy Constructor>. 1246 1247=item CORE::%s is not a keyword 1248 1249(F) The CORE:: namespace is reserved for Perl keywords. 1250 1251=item corrupted regexp pointers 1252 1253(P) The regular expression engine got confused by what the regular 1254expression compiler gave it. 1255 1256=item corrupted regexp program 1257 1258(P) The regular expression engine got passed a regexp program without a 1259valid magic number. 1260 1261=item Corrupt malloc ptr 0x%lx at 0x%lx 1262 1263(P) The malloc package that comes with Perl had an internal failure. 1264 1265=item Count after length/code in unpack 1266 1267(F) You had an unpack template indicating a counted-length string, but 1268you have also specified an explicit size for the string. See 1269L<perlfunc/pack>. 1270 1271=item Deep recursion on subroutine "%s" 1272 1273(W recursion) This subroutine has called itself (directly or indirectly) 1274100 times more than it has returned. This probably indicates an 1275infinite recursion, unless you're writing strange benchmark programs, in 1276which case it indicates something else. 1277 1278=item defined(@array) is deprecated 1279 1280(D deprecated) defined() is not usually useful on arrays because it 1281checks for an undefined I<scalar> value. If you want to see if the 1282array is empty, just use C<if (@array) { # not empty }> for example. 1283 1284=item defined(%hash) is deprecated 1285 1286(D deprecated) defined() is not usually useful on hashes because it 1287checks for an undefined I<scalar> value. If you want to see if the hash 1288is empty, just use C<if (%hash) { # not empty }> for example. 1289 1290=item %s defines neither package nor VERSION--version check failed 1291 1292(F) You said something like "use Module 42" but in the Module file 1293there are neither package declarations nor a C<$VERSION>. 1294 1295=item Delimiter for here document is too long 1296 1297(F) In a here document construct like C<<<FOO>, the label C<FOO> is too 1298long for Perl to handle. You have to be seriously twisted to write code 1299that triggers this error. 1300 1301=item DESTROY created new reference to dead object '%s' 1302 1303(F) A DESTROY() method created a new reference to the object which is 1304just being DESTROYed. Perl is confused, and prefers to abort rather than 1305to create a dangling reference. 1306 1307=item Did not produce a valid header 1308 1309See Server error. 1310 1311=item %s did not return a true value 1312 1313(F) A required (or used) file must return a true value to indicate that 1314it compiled correctly and ran its initialization code correctly. It's 1315traditional to end such a file with a "1;", though any true value would 1316do. See L<perlfunc/require>. 1317 1318=item (Did you mean &%s instead?) 1319 1320(W) You probably referred to an imported subroutine &FOO as $FOO or some 1321such. 1322 1323=item (Did you mean "local" instead of "our"?) 1324 1325(W misc) Remember that "our" does not localize the declared global 1326variable. You have declared it again in the same lexical scope, which 1327seems superfluous. 1328 1329=item (Did you mean $ or @ instead of %?) 1330 1331(W) You probably said %hash{$key} when you meant $hash{$key} or 1332@hash{@keys}. On the other hand, maybe you just meant %hash and got 1333carried away. 1334 1335=item Died 1336 1337(F) You passed die() an empty string (the equivalent of C<die "">) or 1338you called it with no args and both C<$@> and C<$_> were empty. 1339 1340=item Document contains no data 1341 1342See Server error. 1343 1344=item %s does not define %s::VERSION--version check failed 1345 1346(F) You said something like "use Module 42" but the Module did not 1347define a C<$VERSION.> 1348 1349=item '/' does not take a repeat count 1350 1351(F) You cannot put a repeat count of any kind right after the '/' code. 1352See L<perlfunc/pack>. 1353 1354=item Don't know how to handle magic of type '%s' 1355 1356(P) The internal handling of magical variables has been cursed. 1357 1358=item do_study: out of memory 1359 1360(P) This should have been caught by safemalloc() instead. 1361 1362=item (Do you need to predeclare %s?) 1363 1364(S syntax) This is an educated guess made in conjunction with the message 1365"%s found where operator expected". It often means a subroutine or module 1366name is being referenced that hasn't been declared yet. This may be 1367because of ordering problems in your file, or because of a missing 1368"sub", "package", "require", or "use" statement. If you're referencing 1369something that isn't defined yet, you don't actually have to define the 1370subroutine or package before the current location. You can use an empty 1371"sub foo;" or "package FOO;" to enter a "forward" declaration. 1372 1373=item dump() better written as CORE::dump() 1374 1375(W misc) You used the obsolescent C<dump()> built-in function, without fully 1376qualifying it as C<CORE::dump()>. Maybe it's a typo. See L<perlfunc/dump>. 1377 1378=item Duplicate free() ignored 1379 1380(S malloc) An internal routine called free() on something that had 1381already been freed. 1382 1383=item elseif should be elsif 1384 1385(S syntax) There is no keyword "elseif" in Perl because Larry thinks it's 1386ugly. Your code will be interpreted as an attempt to call a method named 1387"elseif" for the class returned by the following block. This is 1388unlikely to be what you want. 1389 1390=item Empty %s 1391 1392(F) C<\p> and C<\P> are used to introduce a named Unicode property, as 1393described in L<perlunicode> and L<perlre>. You used C<\p> or C<\P> in 1394a regular expression without specifying the property name. 1395 1396=item entering effective %s failed 1397 1398(F) While under the C<use filetest> pragma, switching the real and 1399effective uids or gids failed. 1400 1401=item Error converting file specification %s 1402 1403(F) An error peculiar to VMS. Because Perl may have to deal with file 1404specifications in either VMS or Unix syntax, it converts them to a 1405single form when it must operate on them directly. Either you've passed 1406an invalid file specification to Perl, or you've found a case the 1407conversion routines don't handle. Drat. 1408 1409=item %s: Eval-group in insecure regular expression 1410 1411(F) Perl detected tainted data when trying to compile a regular 1412expression that contains the C<(?{ ... })> zero-width assertion, which 1413is unsafe. See L<perlre/(?{ code })>, and L<perlsec>. 1414 1415=item %s: Eval-group not allowed at run time 1416 1417(F) Perl tried to compile a regular expression containing the 1418C<(?{ ... })> zero-width assertion at run time, as it would when the 1419pattern contains interpolated values. Since that is a security risk, it 1420is not allowed. If you insist, you may still do this by explicitly 1421building the pattern from an interpolated string at run time and using 1422that in an eval(). See L<perlre/(?{ code })>. 1423 1424=item %s: Eval-group not allowed, use re 'eval' 1425 1426(F) A regular expression contained the C<(?{ ... })> zero-width 1427assertion, but that construct is only allowed when the C<use re 'eval'> 1428pragma is in effect. See L<perlre/(?{ code })>. 1429 1430=item Excessively long <> operator 1431 1432(F) The contents of a <> operator may not exceed the maximum size of a 1433Perl identifier. If you're just trying to glob a long list of 1434filenames, try using the glob() operator, or put the filenames into a 1435variable and glob that. 1436 1437=item exec? I'm not *that* kind of operating system 1438 1439(F) The C<exec> function is not implemented in MacPerl. See L<perlport>. 1440 1441=item Execution of %s aborted due to compilation errors 1442 1443(F) The final summary message when a Perl compilation fails. 1444 1445=item Exiting eval via %s 1446 1447(W exiting) You are exiting an eval by unconventional means, such as a 1448goto, or a loop control statement. 1449 1450=item Exiting format via %s 1451 1452(W exiting) You are exiting a format by unconventional means, such as a 1453goto, or a loop control statement. 1454 1455=item Exiting pseudo-block via %s 1456 1457(W exiting) You are exiting a rather special block construct (like a 1458sort block or subroutine) by unconventional means, such as a goto, or a 1459loop control statement. See L<perlfunc/sort>. 1460 1461=item Exiting subroutine via %s 1462 1463(W exiting) You are exiting a subroutine by unconventional means, such 1464as a goto, or a loop control statement. 1465 1466=item Exiting substitution via %s 1467 1468(W exiting) You are exiting a substitution by unconventional means, such 1469as a return, a goto, or a loop control statement. 1470 1471=item Explicit blessing to '' (assuming package main) 1472 1473(W misc) You are blessing a reference to a zero length string. This has 1474the effect of blessing the reference into the package main. This is 1475usually not what you want. Consider providing a default target package, 1476e.g. bless($ref, $p || 'MyPackage'); 1477 1478=item %s: Expression syntax 1479 1480(A) You've accidentally run your script through B<csh> instead of Perl. 1481Check the #! line, or manually feed your script into Perl yourself. 1482 1483=item %s failed--call queue aborted 1484 1485(F) An untrapped exception was raised while executing a CHECK, INIT, or 1486END subroutine. Processing of the remainder of the queue of such 1487routines has been prematurely ended. 1488 1489=item False [] range "%s" in regex; marked by <-- HERE in m/%s/ 1490 1491(W regexp) A character class range must start and end at a literal 1492character, not another character class like C<\d> or C<[:alpha:]>. The "-" 1493in your false range is interpreted as a literal "-". Consider quoting the 1494"-", "\-". The <-- HERE shows in the regular expression about where the 1495problem was discovered. See L<perlre>. 1496 1497=item Fatal VMS error at %s, line %d 1498 1499(P) An error peculiar to VMS. Something untoward happened in a VMS 1500system service or RTL routine; Perl's exit status should provide more 1501details. The filename in "at %s" and the line number in "line %d" tell 1502you which section of the Perl source code is distressed. 1503 1504=item fcntl is not implemented 1505 1506(F) Your machine apparently doesn't implement fcntl(). What is this, a 1507PDP-11 or something? 1508 1509=item Filehandle %s opened only for input 1510 1511(W io) You tried to write on a read-only filehandle. If you intended 1512it to be a read-write filehandle, you needed to open it with "+<" or 1513"+>" or "+>>" instead of with "<" or nothing. If you intended only to 1514write the file, use ">" or ">>". See L<perlfunc/open>. 1515 1516=item Filehandle %s opened only for output 1517 1518(W io) You tried to read from a filehandle opened only for writing, If 1519you intended it to be a read/write filehandle, you needed to open it 1520with "+<" or "+>" or "+>>" instead of with "<" or nothing. If you 1521intended only to read from the file, use "<". See L<perlfunc/open>. 1522Another possibility is that you attempted to open filedescriptor 0 1523(also known as STDIN) for output (maybe you closed STDIN earlier?). 1524 1525=item Filehandle %s reopened as %s only for input 1526 1527(W io) You opened for reading a filehandle that got the same filehandle id 1528as STDOUT or STDERR. This occured because you closed STDOUT or STDERR 1529previously. 1530 1531=item Filehandle STDIN reopened as %s only for output 1532 1533(W io) You opened for writing a filehandle that got the same filehandle id 1534as STDIN. This occured because you closed STDIN previously. 1535 1536=item Final $ should be \$ or $name 1537 1538(F) You must now decide whether the final $ in a string was meant to be 1539a literal dollar sign, or was meant to introduce a variable name that 1540happens to be missing. So you have to put either the backslash or the 1541name. 1542 1543=item flock() on closed filehandle %s 1544 1545(W closed) The filehandle you're attempting to flock() got itself closed 1546some time before now. Check your control flow. flock() operates on 1547filehandles. Are you attempting to call flock() on a dirhandle by the 1548same name? 1549 1550=item Format not terminated 1551 1552(F) A format must be terminated by a line with a solitary dot. Perl got 1553to the end of your file without finding such a line. 1554 1555=item Format %s redefined 1556 1557(W redefine) You redefined a format. To suppress this warning, say 1558 1559 { 1560 no warnings 'redefine'; 1561 eval "format NAME =..."; 1562 } 1563 1564=item Found = in conditional, should be == 1565 1566(W syntax) You said 1567 1568 if ($foo = 123) 1569 1570when you meant 1571 1572 if ($foo == 123) 1573 1574(or something like that). 1575 1576=item %s found where operator expected 1577 1578(S syntax) The Perl lexer knows whether to expect a term or an operator. 1579If it sees what it knows to be a term when it was expecting to see an 1580operator, it gives you this warning. Usually it indicates that an 1581operator or delimiter was omitted, such as a semicolon. 1582 1583=item gdbm store returned %d, errno %d, key "%s" 1584 1585(S) A warning from the GDBM_File extension that a store failed. 1586 1587=item gethostent not implemented 1588 1589(F) Your C library apparently doesn't implement gethostent(), probably 1590because if it did, it'd feel morally obligated to return every hostname 1591on the Internet. 1592 1593=item get%sname() on closed socket %s 1594 1595(W closed) You tried to get a socket or peer socket name on a closed 1596socket. Did you forget to check the return value of your socket() call? 1597 1598=item getpwnam returned invalid UIC %#o for user "%s" 1599 1600(S) A warning peculiar to VMS. The call to C<sys$getuai> underlying the 1601C<getpwnam> operator returned an invalid UIC. 1602 1603=item getsockopt() on closed socket %s 1604 1605(W closed) You tried to get a socket option on a closed socket. Did you 1606forget to check the return value of your socket() call? See 1607L<perlfunc/getsockopt>. 1608 1609=item Global symbol "%s" requires explicit package name 1610 1611(F) You've said "use strict vars", which indicates that all variables 1612must either be lexically scoped (using "my"), declared beforehand using 1613"our", or explicitly qualified to say which package the global variable 1614is in (using "::"). 1615 1616=item glob failed (%s) 1617 1618(W glob) Something went wrong with the external program(s) used for 1619C<glob> and C<< <*.c> >>. Usually, this means that you supplied a 1620C<glob> pattern that caused the external program to fail and exit with a 1621nonzero status. If the message indicates that the abnormal exit 1622resulted in a coredump, this may also mean that your csh (C shell) is 1623broken. If so, you should change all of the csh-related variables in 1624config.sh: If you have tcsh, make the variables refer to it as if it 1625were csh (e.g. C<full_csh='/usr/bin/tcsh'>); otherwise, make them all 1626empty (except that C<d_csh> should be C<'undef'>) so that Perl will 1627think csh is missing. In either case, after editing config.sh, run 1628C<./Configure -S> and rebuild Perl. 1629 1630=item Glob not terminated 1631 1632(F) The lexer saw a left angle bracket in a place where it was expecting 1633a term, so it's looking for the corresponding right angle bracket, and 1634not finding it. Chances are you left some needed parentheses out 1635earlier in the line, and you really meant a "less than". 1636 1637=item Got an error from DosAllocMem 1638 1639(P) An error peculiar to OS/2. Most probably you're using an obsolete 1640version of Perl, and this should not happen anyway. 1641 1642=item goto must have label 1643 1644(F) Unlike with "next" or "last", you're not allowed to goto an 1645unspecified destination. See L<perlfunc/goto>. 1646 1647=item ()-group starts with a count 1648 1649(F) A ()-group started with a count. A count is 1650supposed to follow something: a template character or a ()-group. 1651 See L<perlfunc/pack>. 1652 1653=item %s had compilation errors 1654 1655(F) The final summary message when a C<perl -c> fails. 1656 1657=item Had to create %s unexpectedly 1658 1659(S internal) A routine asked for a symbol from a symbol table that ought 1660to have existed already, but for some reason it didn't, and had to be 1661created on an emergency basis to prevent a core dump. 1662 1663=item Hash %%s missing the % in argument %d of %s() 1664 1665(D deprecated) Really old Perl let you omit the % on hash names in some 1666spots. This is now heavily deprecated. 1667 1668=item %s has too many errors 1669 1670(F) The parser has given up trying to parse the program after 10 errors. 1671Further error messages would likely be uninformative. 1672 1673=item Hexadecimal number > 0xffffffff non-portable 1674 1675(W portable) The hexadecimal number you specified is larger than 2**32-1 1676(4294967295) and therefore non-portable between systems. See 1677L<perlport> for more on portability concerns. 1678 1679=item Identifier too long 1680 1681(F) Perl limits identifiers (names for variables, functions, etc.) to 1682about 250 characters for simple names, and somewhat more for compound 1683names (like C<$A::B>). You've exceeded Perl's limits. Future versions 1684of Perl are likely to eliminate these arbitrary limitations. 1685 1686=item Illegal binary digit %s 1687 1688(F) You used a digit other than 0 or 1 in a binary number. 1689 1690=item Illegal binary digit %s ignored 1691 1692(W digit) You may have tried to use a digit other than 0 or 1 in a 1693binary number. Interpretation of the binary number stopped before the 1694offending digit. 1695 1696=item Illegal character %s (carriage return) 1697 1698(F) Perl normally treats carriage returns in the program text as it 1699would any other whitespace, which means you should never see this error 1700when Perl was built using standard options. For some reason, your 1701version of Perl appears to have been built without this support. Talk 1702to your Perl administrator. 1703 1704=item Illegal character in prototype for %s : %s 1705 1706(W syntax) An illegal character was found in a prototype declaration. Legal 1707characters in prototypes are $, @, %, *, ;, [, ], &, and \. 1708 1709=item Illegal declaration of anonymous subroutine 1710 1711(F) When using the C<sub> keyword to construct an anonymous subroutine, 1712you must always specify a block of code. See L<perlsub>. 1713 1714=item Illegal division by zero 1715 1716(F) You tried to divide a number by 0. Either something was wrong in 1717your logic, or you need to put a conditional in to guard against 1718meaningless input. 1719 1720=item Illegal hexadecimal digit %s ignored 1721 1722(W digit) You may have tried to use a character other than 0 - 9 or 1723A - F, a - f in a hexadecimal number. Interpretation of the hexadecimal 1724number stopped before the illegal character. 1725 1726=item Illegal modulus zero 1727 1728(F) You tried to divide a number by 0 to get the remainder. Most 1729numbers don't take to this kindly. 1730 1731=item Illegal number of bits in vec 1732 1733(F) The number of bits in vec() (the third argument) must be a power of 1734two from 1 to 32 (or 64, if your platform supports that). 1735 1736=item Illegal octal digit %s 1737 1738(F) You used an 8 or 9 in an octal number. 1739 1740=item Illegal octal digit %s ignored 1741 1742(W digit) You may have tried to use an 8 or 9 in an octal number. 1743Interpretation of the octal number stopped before the 8 or 9. 1744 1745=item Illegal switch in PERL5OPT: %s 1746 1747(X) The PERL5OPT environment variable may only be used to set the 1748following switches: B<-[DIMUdmtw]>. 1749 1750=item Ill-formed CRTL environ value "%s" 1751 1752(W internal) A warning peculiar to VMS. Perl tried to read the CRTL's 1753internal environ array, and encountered an element without the C<=> 1754delimiter used to separate keys from values. The element is ignored. 1755 1756=item Ill-formed message in prime_env_iter: |%s| 1757 1758(W internal) A warning peculiar to VMS. Perl tried to read a logical 1759name or CLI symbol definition when preparing to iterate over %ENV, and 1760didn't see the expected delimiter between key and value, so the line was 1761ignored. 1762 1763=item (in cleanup) %s 1764 1765(W misc) This prefix usually indicates that a DESTROY() method raised 1766the indicated exception. Since destructors are usually called by the 1767system at arbitrary points during execution, and often a vast number of 1768times, the warning is issued only once for any number of failures that 1769would otherwise result in the same message being repeated. 1770 1771Failure of user callbacks dispatched using the C<G_KEEPERR> flag could 1772also result in this warning. See L<perlcall/G_KEEPERR>. 1773 1774=item In EBCDIC the v-string components cannot exceed 2147483647 1775 1776(F) An error peculiar to EBCDIC. Internally, v-strings are stored as 1777Unicode code points, and encoded in EBCDIC as UTF-EBCDIC. The UTF-EBCDIC 1778encoding is limited to code points no larger than 2147483647 (0x7FFFFFFF). 1779 1780=item Insecure dependency in %s 1781 1782(F) You tried to do something that the tainting mechanism didn't like. 1783The tainting mechanism is turned on when you're running setuid or 1784setgid, or when you specify B<-T> to turn it on explicitly. The 1785tainting mechanism labels all data that's derived directly or indirectly 1786from the user, who is considered to be unworthy of your trust. If any 1787such data is used in a "dangerous" operation, you get this error. See 1788L<perlsec> for more information. 1789 1790=item Insecure directory in %s 1791 1792(F) You can't use system(), exec(), or a piped open in a setuid or 1793setgid script if C<$ENV{PATH}> contains a directory that is writable by 1794the world. See L<perlsec>. 1795 1796=item Insecure $ENV{%s} while running %s 1797 1798(F) You can't use system(), exec(), or a piped open in a setuid or 1799setgid script if any of C<$ENV{PATH}>, C<$ENV{IFS}>, C<$ENV{CDPATH}>, 1800C<$ENV{ENV}>, C<$ENV{BASH_ENV}> or C<$ENV{TERM}> are derived from data 1801supplied (or potentially supplied) by the user. The script must set 1802the path to a known value, using trustworthy data. See L<perlsec>. 1803 1804=item Integer overflow in %s number 1805 1806(W overflow) The hexadecimal, octal or binary number you have specified 1807either as a literal or as an argument to hex() or oct() is too big for 1808your architecture, and has been converted to a floating point number. 1809On a 32-bit architecture the largest hexadecimal, octal or binary number 1810representable without overflow is 0xFFFFFFFF, 037777777777, or 18110b11111111111111111111111111111111 respectively. Note that Perl 1812transparently promotes all numbers to a floating point representation 1813internally--subject to loss of precision errors in subsequent 1814operations. 1815 1816=item Internal disaster in regex; marked by <-- HERE in m/%s/ 1817 1818(P) Something went badly wrong in the regular expression parser. 1819The <-- HERE shows in the regular expression about where the problem was 1820discovered. 1821 1822=item Internal inconsistency in tracking vforks 1823 1824(S) A warning peculiar to VMS. Perl keeps track of the number of times 1825you've called C<fork> and C<exec>, to determine whether the current call 1826to C<exec> should affect the current script or a subprocess (see 1827L<perlvms/"exec LIST">). Somehow, this count has become scrambled, so 1828Perl is making a guess and treating this C<exec> as a request to 1829terminate the Perl script and execute the specified command. 1830 1831=item Internal urp in regex; marked by <-- HERE in m/%s/ 1832 1833(P) Something went badly awry in the regular expression parser. The 1834<-- HERE shows in the regular expression about where the problem was 1835discovered. 1836 1837=item %s (...) interpreted as function 1838 1839(W syntax) You've run afoul of the rule that says that any list operator 1840followed by parentheses turns into a function, with all the list 1841operators arguments found inside the parentheses. See 1842L<perlop/Terms and List Operators (Leftward)>. 1843 1844=item Invalid %s attribute: %s 1845 1846The indicated attribute for a subroutine or variable was not recognized 1847by Perl or by a user-supplied handler. See L<attributes>. 1848 1849=item Invalid %s attributes: %s 1850 1851The indicated attributes for a subroutine or variable were not 1852recognized by Perl or by a user-supplied handler. See L<attributes>. 1853 1854=item Invalid conversion in %s: "%s" 1855 1856(W printf) Perl does not understand the given format conversion. See 1857L<perlfunc/sprintf>. 1858 1859=item Invalid [] range "%s" in regex; marked by <-- HERE in m/%s/ 1860 1861(F) The range specified in a character class had a minimum character 1862greater than the maximum character. One possibility is that you forgot the 1863C<{}> from your ending C<\x{}> - C<\x> without the curly braces can go only 1864up to C<ff>. The <-- HERE shows in the regular expression about where the 1865problem was discovered. See L<perlre>. 1866 1867=item Invalid range "%s" in transliteration operator 1868 1869(F) The range specified in the tr/// or y/// operator had a minimum 1870character greater than the maximum character. See L<perlop>. 1871 1872=item Invalid separator character %s in attribute list 1873 1874(F) Something other than a colon or whitespace was seen between the 1875elements of an attribute list. If the previous attribute had a 1876parenthesised parameter list, perhaps that list was terminated too soon. 1877See L<attributes>. 1878 1879=item Invalid separator character %s in PerlIO layer specification %s 1880 1881(W layer) When pushing layers onto the Perl I/O system, something other than a 1882colon or whitespace was seen between the elements of a layer list. 1883If the previous attribute had a parenthesised parameter list, perhaps that 1884list was terminated too soon. 1885 1886=item Invalid type '%s' in %s 1887 1888(F) The given character is not a valid pack or unpack type. 1889See L<perlfunc/pack>. 1890(W) The given character is not a valid pack or unpack type but used to be 1891silently ignored. 1892 1893=item ioctl is not implemented 1894 1895(F) Your machine apparently doesn't implement ioctl(), which is pretty 1896strange for a machine that supports C. 1897 1898=item ioctl() on unopened %s 1899 1900(W unopened) You tried ioctl() on a filehandle that was never opened. 1901Check you control flow and number of arguments. 1902 1903=item IO layers (like "%s") unavailable 1904 1905(F) Your Perl has not been configured to have PerlIO, and therefore 1906you cannot use IO layers. To have PerlIO Perl must be configured 1907with 'useperlio'. 1908 1909=item IO::Socket::atmark not implemented on this architecture 1910 1911(F) Your machine doesn't implement the sockatmark() functionality, 1912neither as a system call or an ioctl call (SIOCATMARK). 1913 1914=item `%s' is not a code reference 1915 1916(W overload) The second (fourth, sixth, ...) argument of overload::constant 1917needs to be a code reference. Either an anonymous subroutine, or a reference 1918to a subroutine. 1919 1920=item `%s' is not an overloadable type 1921 1922(W overload) You tried to overload a constant type the overload package is 1923unaware of. 1924 1925=item junk on end of regexp 1926 1927(P) The regular expression parser is confused. 1928 1929=item Label not found for "last %s" 1930 1931(F) You named a loop to break out of, but you're not currently in a loop 1932of that name, not even if you count where you were called from. See 1933L<perlfunc/last>. 1934 1935=item Label not found for "next %s" 1936 1937(F) You named a loop to continue, but you're not currently in a loop of 1938that name, not even if you count where you were called from. See 1939L<perlfunc/last>. 1940 1941=item Label not found for "redo %s" 1942 1943(F) You named a loop to restart, but you're not currently in a loop of 1944that name, not even if you count where you were called from. See 1945L<perlfunc/last>. 1946 1947=item leaving effective %s failed 1948 1949(F) While under the C<use filetest> pragma, switching the real and 1950effective uids or gids failed. 1951 1952=item length/code after end of string in unpack 1953 1954(F) While unpacking, the string buffer was alread used up when an unpack 1955length/code combination tried to obtain more data. This results in 1956an undefined value for the length. See L<perlfunc/pack>. 1957 1958=item listen() on closed socket %s 1959 1960(W closed) You tried to do a listen on a closed socket. Did you forget 1961to check the return value of your socket() call? See 1962L<perlfunc/listen>. 1963 1964=item Lookbehind longer than %d not implemented in regex; marked by <-- HERE in m/%s/ 1965 1966(F) There is currently a limit on the length of string which lookbehind can 1967handle. This restriction may be eased in a future release. The <-- HERE 1968shows in the regular expression about where the problem was discovered. 1969 1970=item lstat() on filehandle %s 1971 1972(W io) You tried to do an lstat on a filehandle. What did you mean 1973by that? lstat() makes sense only on filenames. (Perl did a fstat() 1974instead on the filehandle.) 1975 1976=item Lvalue subs returning %s not implemented yet 1977 1978(F) Due to limitations in the current implementation, array and hash 1979values cannot be returned in subroutines used in lvalue context. See 1980L<perlsub/"Lvalue subroutines">. 1981 1982=item Malformed integer in [] in pack 1983 1984(F) Between the brackets enclosing a numeric repeat count only digits 1985are permitted. See L<perlfunc/pack>. 1986 1987=item Malformed integer in [] in unpack 1988 1989(F) Between the brackets enclosing a numeric repeat count only digits 1990are permitted. See L<perlfunc/pack>. 1991 1992=item Malformed PERLLIB_PREFIX 1993 1994(F) An error peculiar to OS/2. PERLLIB_PREFIX should be of the form 1995 1996 prefix1;prefix2 1997 1998or 1999 prefix1 prefix2 2000 2001with nonempty prefix1 and prefix2. If C<prefix1> is indeed a prefix of 2002a builtin library search path, prefix2 is substituted. The error may 2003appear if components are not found, or are too long. See 2004"PERLLIB_PREFIX" in L<perlos2>. 2005 2006=item Malformed prototype for %s: %s 2007 2008(F) You tried to use a function with a malformed prototype. The 2009syntax of function prototypes is given a brief compile-time check for 2010obvious errors like invalid characters. A more rigorous check is run 2011when the function is called. 2012 2013=item Malformed UTF-8 character (%s) 2014 2015Perl detected something that didn't comply with UTF-8 encoding rules. 2016 2017One possible cause is that you read in data that you thought to be in 2018UTF-8 but it wasn't (it was for example legacy 8-bit data). Another 2019possibility is careless use of utf8::upgrade(). 2020 2021=item Malformed UTF-16 surrogate 2022 2023Perl thought it was reading UTF-16 encoded character data but while 2024doing it Perl met a malformed Unicode surrogate. 2025 2026=item %s matches null string many times in regex; marked by <-- HERE in m/%s/ 2027 2028(W regexp) The pattern you've specified would be an infinite loop if the 2029regular expression engine didn't specifically check for that. The <-- HERE 2030shows in the regular expression about where the problem was discovered. 2031See L<perlre>. 2032 2033=item "%s" may clash with future reserved word 2034 2035(W) This warning may be due to running a perl5 script through a perl4 2036interpreter, especially if the word that is being warned about is 2037"use" or "my". 2038 2039=item % may not be used in pack 2040 2041(F) You can't pack a string by supplying a checksum, because the 2042checksumming process loses information, and you can't go the other way. 2043See L<perlfunc/unpack>. 2044 2045=item Method for operation %s not found in package %s during blessing 2046 2047(F) An attempt was made to specify an entry in an overloading table that 2048doesn't resolve to a valid subroutine. See L<overload>. 2049 2050=item Method %s not permitted 2051 2052See Server error. 2053 2054=item Might be a runaway multi-line %s string starting on line %d 2055 2056(S) An advisory indicating that the previous error may have been caused 2057by a missing delimiter on a string or pattern, because it eventually 2058ended earlier on the current line. 2059 2060=item Misplaced _ in number 2061 2062(W syntax) An underscore (underbar) in a numeric constant did not 2063separate two digits. 2064 2065=item Missing %sbrace%s on \N{} 2066 2067(F) Wrong syntax of character name literal C<\N{charname}> within 2068double-quotish context. 2069 2070=item Missing comma after first argument to %s function 2071 2072(F) While certain functions allow you to specify a filehandle or an 2073"indirect object" before the argument list, this ain't one of them. 2074 2075=item Missing command in piped open 2076 2077(W pipe) You used the C<open(FH, "| command")> or 2078C<open(FH, "command |")> construction, but the command was missing or 2079blank. 2080 2081=item Missing control char name in \c 2082 2083(F) A double-quoted string ended with "\c", without the required control 2084character name. 2085 2086=item Missing name in "my sub" 2087 2088(F) The reserved syntax for lexically scoped subroutines requires that 2089they have a name with which they can be found. 2090 2091=item Missing $ on loop variable 2092 2093(F) Apparently you've been programming in B<csh> too much. Variables 2094are always mentioned with the $ in Perl, unlike in the shells, where it 2095can vary from one line to the next. 2096 2097=item (Missing operator before %s?) 2098 2099(S syntax) This is an educated guess made in conjunction with the message 2100"%s found where operator expected". Often the missing operator is a comma. 2101 2102=item Missing right brace on %s 2103 2104(F) Missing right brace in C<\p{...}> or C<\P{...}>. 2105 2106=item Missing right curly or square bracket 2107 2108(F) The lexer counted more opening curly or square brackets than closing 2109ones. As a general rule, you'll find it's missing near the place you 2110were last editing. 2111 2112=item (Missing semicolon on previous line?) 2113 2114(S syntax) This is an educated guess made in conjunction with the message 2115"%s found where operator expected". Don't automatically put a semicolon on 2116the previous line just because you saw this message. 2117 2118=item Modification of a read-only value attempted 2119 2120(F) You tried, directly or indirectly, to change the value of a 2121constant. You didn't, of course, try "2 = 1", because the compiler 2122catches that. But an easy way to do the same thing is: 2123 2124 sub mod { $_[0] = 1 } 2125 mod(2); 2126 2127Another way is to assign to a substr() that's off the end of the string. 2128 2129Yet another way is to assign to a C<foreach> loop I<VAR> when I<VAR> 2130is aliased to a constant in the look I<LIST>: 2131 2132 $x = 1; 2133 foreach my $n ($x, 2) { 2134 $n *= 2; # modifies the $x, but fails on attempt to modify the 2 2135 } 2136 2137=item Modification of non-creatable array value attempted, %s 2138 2139(F) You tried to make an array value spring into existence, and the 2140subscript was probably negative, even counting from end of the array 2141backwards. 2142 2143=item Modification of non-creatable hash value attempted, %s 2144 2145(P) You tried to make a hash value spring into existence, and it 2146couldn't be created for some peculiar reason. 2147 2148=item Module name must be constant 2149 2150(F) Only a bare module name is allowed as the first argument to a "use". 2151 2152=item Module name required with -%c option 2153 2154(F) The C<-M> or C<-m> options say that Perl should load some module, but 2155you omitted the name of the module. Consult L<perlrun> for full details 2156about C<-M> and C<-m>. 2157 2158=item More than one argument to open 2159 2160(F) The C<open> function has been asked to open multiple files. This 2161can happen if you are trying to open a pipe to a command that takes a 2162list of arguments, but have forgotten to specify a piped open mode. 2163See L<perlfunc/open> for details. 2164 2165=item msg%s not implemented 2166 2167(F) You don't have System V message IPC on your system. 2168 2169=item Multidimensional syntax %s not supported 2170 2171(W syntax) Multidimensional arrays aren't written like C<$foo[1,2,3]>. 2172They're written like C<$foo[1][2][3]>, as in C. 2173 2174=item '/' must be followed by 'a*', 'A*' or 'Z*' 2175 2176(F) You had a pack template indicating a counted-length string, 2177Currently the only things that can have their length counted are a*, A* 2178or Z*. See L<perlfunc/pack>. 2179 2180=item '/' must follow a numeric type in unpack 2181 2182(F) You had an unpack template that contained a '/', but this did not 2183follow some unpack specification producing a numeric value. 2184See L<perlfunc/pack>. 2185 2186=item "my sub" not yet implemented 2187 2188(F) Lexically scoped subroutines are not yet implemented. Don't try 2189that yet. 2190 2191=item "my" variable %s can't be in a package 2192 2193(F) Lexically scoped variables aren't in a package, so it doesn't make 2194sense to try to declare one with a package qualifier on the front. Use 2195local() if you want to localize a package variable. 2196 2197=item Name "%s::%s" used only once: possible typo 2198 2199(W once) Typographical errors often show up as unique variable names. 2200If you had a good reason for having a unique name, then just mention it 2201again somehow to suppress the message. The C<our> declaration is 2202provided for this purpose. 2203 2204NOTE: This warning detects symbols that have been used only once so $c, @c, 2205%c, *c, &c, sub c{}, c(), and c (the filehandle or format) are considered 2206the same; if a program uses $c only once but also uses any of the others it 2207will not trigger this warning. 2208 2209=item Negative '/' count in unpack 2210 2211(F) The length count obtained from a length/code unpack operation was 2212negative. See L<perlfunc/pack>. 2213 2214=item Negative length 2215 2216(F) You tried to do a read/write/send/recv operation with a buffer 2217length that is less than 0. This is difficult to imagine. 2218 2219=item Negative offset to vec in lvalue context 2220 2221(F) When C<vec> is called in an lvalue context, the second argument must be 2222greater than or equal to zero. 2223 2224=item Nested quantifiers in regex; marked by <-- HERE in m/%s/ 2225 2226(F) You can't quantify a quantifier without intervening parentheses. So 2227things like ** or +* or ?* are illegal. The <-- HERE shows in the regular 2228expression about where the problem was discovered. 2229 2230Note that the minimal matching quantifiers, C<*?>, C<+?>, and 2231C<??> appear to be nested quantifiers, but aren't. See L<perlre>. 2232 2233=item %s never introduced 2234 2235(S internal) The symbol in question was declared but somehow went out of 2236scope before it could possibly have been used. 2237 2238=item Newline in left-justified string for %s 2239 2240(W printf) There is a newline in a string to be left justified by 2241C<printf> or C<sprintf>. 2242 2243The padding spaces will appear after the newline, which is probably not 2244what you wanted. Usually you should remove the newline from the string 2245and put formatting characters in the C<sprintf> format. 2246 2247=item No %s allowed while running setuid 2248 2249(F) Certain operations are deemed to be too insecure for a setuid or 2250setgid script to even be allowed to attempt. Generally speaking there 2251will be another way to do what you want that is, if not secure, at least 2252securable. See L<perlsec>. 2253 2254=item No comma allowed after %s 2255 2256(F) A list operator that has a filehandle or "indirect object" is not 2257allowed to have a comma between that and the following arguments. 2258Otherwise it'd be just another one of the arguments. 2259 2260One possible cause for this is that you expected to have imported a 2261constant to your name space with B<use> or B<import> while no such 2262importing took place, it may for example be that your operating system 2263does not support that particular constant. Hopefully you did use an 2264explicit import list for the constants you expect to see, please see 2265L<perlfunc/use> and L<perlfunc/import>. While an explicit import list 2266would probably have caught this error earlier it naturally does not 2267remedy the fact that your operating system still does not support that 2268constant. Maybe you have a typo in the constants of the symbol import 2269list of B<use> or B<import> or in the constant name at the line where 2270this error was triggered? 2271 2272=item No command into which to pipe on command line 2273 2274(F) An error peculiar to VMS. Perl handles its own command line 2275redirection, and found a '|' at the end of the command line, so it 2276doesn't know where you want to pipe the output from this command. 2277 2278=item No DB::DB routine defined 2279 2280(F) The currently executing code was compiled with the B<-d> switch, but 2281for some reason the perl5db.pl file (or some facsimile thereof) didn't 2282define a routine to be called at the beginning of each statement. Which 2283is odd, because the file should have been required automatically, and 2284should have blown up the require if it didn't parse right. 2285 2286=item No dbm on this machine 2287 2288(P) This is counted as an internal error, because every machine should 2289supply dbm nowadays, because Perl comes with SDBM. See L<SDBM_File>. 2290 2291=item No DBsub routine 2292 2293(F) The currently executing code was compiled with the B<-d> switch, 2294but for some reason the perl5db.pl file (or some facsimile thereof) 2295didn't define a DB::sub routine to be called at the beginning of each 2296ordinary subroutine call. 2297 2298=item No B<-e> allowed in setuid scripts 2299 2300(F) A setuid script can't be specified by the user. 2301 2302=item No error file after 2> or 2>> on command line 2303 2304(F) An error peculiar to VMS. Perl handles its own command line 2305redirection, and found a '2>' or a '2>>' on the command line, but can't 2306find the name of the file to which to write data destined for stderr. 2307 2308=item No group ending character '%c' found in template 2309 2310(F) A pack or unpack template has an opening '(' or '[' without its 2311matching counterpart. See L<perlfunc/pack>. 2312 2313=item No input file after < on command line 2314 2315(F) An error peculiar to VMS. Perl handles its own command line 2316redirection, and found a '<' on the command line, but can't find the 2317name of the file from which to read data for stdin. 2318 2319=item No #! line 2320 2321(F) The setuid emulator requires that scripts have a well-formed #! line 2322even on machines that don't support the #! construct. 2323 2324=item "no" not allowed in expression 2325 2326(F) The "no" keyword is recognized and executed at compile time, and 2327returns no useful value. See L<perlmod>. 2328 2329=item No output file after > on command line 2330 2331(F) An error peculiar to VMS. Perl handles its own command line 2332redirection, and found a lone '>' at the end of the command line, so it 2333doesn't know where you wanted to redirect stdout. 2334 2335=item No output file after > or >> on command line 2336 2337(F) An error peculiar to VMS. Perl handles its own command line 2338redirection, and found a '>' or a '>>' on the command line, but can't 2339find the name of the file to which to write data destined for stdout. 2340 2341=item No package name allowed for variable %s in "our" 2342 2343(F) Fully qualified variable names are not allowed in "our" 2344declarations, because that doesn't make much sense under existing 2345semantics. Such syntax is reserved for future extensions. 2346 2347=item No Perl script found in input 2348 2349(F) You called C<perl -x>, but no line was found in the file beginning 2350with #! and containing the word "perl". 2351 2352=item No setregid available 2353 2354(F) Configure didn't find anything resembling the setregid() call for 2355your system. 2356 2357=item No setreuid available 2358 2359(F) Configure didn't find anything resembling the setreuid() call for 2360your system. 2361 2362=item No space allowed after -%c 2363 2364(F) The argument to the indicated command line switch must follow 2365immediately after the switch, without intervening spaces. 2366 2367=item No %s specified for -%c 2368 2369(F) The indicated command line switch needs a mandatory argument, but 2370you haven't specified one. 2371 2372=item No such class %s 2373 2374(F) You provided a class qualifier in a "my" or "our" declaration, but 2375this class doesn't exist at this point in your program. 2376 2377=item No such pipe open 2378 2379(P) An error peculiar to VMS. The internal routine my_pclose() tried to 2380close a pipe which hadn't been opened. This should have been caught 2381earlier as an attempt to close an unopened filehandle. 2382 2383=item No such pseudo-hash field "%s" 2384 2385(F) You tried to access an array as a hash, but the field name used is 2386not defined. The hash at index 0 should map all valid field names to 2387array indices for that to work. 2388 2389=item No such pseudo-hash field "%s" in variable %s of type %s 2390 2391(F) You tried to access a field of a typed variable where the type does 2392not know about the field name. The field names are looked up in the 2393%FIELDS hash in the type package at compile time. The %FIELDS hash is 2394%usually set up with the 'fields' pragma. 2395 2396=item No such signal: SIG%s 2397 2398(W signal) You specified a signal name as a subscript to %SIG that was 2399not recognized. Say C<kill -l> in your shell to see the valid signal 2400names on your system. 2401 2402=item Not a CODE reference 2403 2404(F) Perl was trying to evaluate a reference to a code value (that is, a 2405subroutine), but found a reference to something else instead. You can 2406use the ref() function to find out what kind of ref it really was. See 2407also L<perlref>. 2408 2409=item Not a format reference 2410 2411(F) I'm not sure how you managed to generate a reference to an anonymous 2412format, but this indicates you did, and that it didn't exist. 2413 2414=item Not a GLOB reference 2415 2416(F) Perl was trying to evaluate a reference to a "typeglob" (that is, a 2417symbol table entry that looks like C<*foo>), but found a reference to 2418something else instead. You can use the ref() function to find out what 2419kind of ref it really was. See L<perlref>. 2420 2421=item Not a HASH reference 2422 2423(F) Perl was trying to evaluate a reference to a hash value, but found a 2424reference to something else instead. You can use the ref() function to 2425find out what kind of ref it really was. See L<perlref>. 2426 2427=item Not an ARRAY reference 2428 2429(F) Perl was trying to evaluate a reference to an array value, but found 2430a reference to something else instead. You can use the ref() function 2431to find out what kind of ref it really was. See L<perlref>. 2432 2433=item Not a perl script 2434 2435(F) The setuid emulator requires that scripts have a well-formed #! line 2436even on machines that don't support the #! construct. The line must 2437mention perl. 2438 2439=item Not a SCALAR reference 2440 2441(F) Perl was trying to evaluate a reference to a scalar value, but found 2442a reference to something else instead. You can use the ref() function 2443to find out what kind of ref it really was. See L<perlref>. 2444 2445=item Not a subroutine reference 2446 2447(F) Perl was trying to evaluate a reference to a code value (that is, a 2448subroutine), but found a reference to something else instead. You can 2449use the ref() function to find out what kind of ref it really was. See 2450also L<perlref>. 2451 2452=item Not a subroutine reference in overload table 2453 2454(F) An attempt was made to specify an entry in an overloading table that 2455doesn't somehow point to a valid subroutine. See L<overload>. 2456 2457=item Not enough arguments for %s 2458 2459(F) The function requires more arguments than you specified. 2460 2461=item Not enough format arguments 2462 2463(W syntax) A format specified more picture fields than the next line 2464supplied. See L<perlform>. 2465 2466=item %s: not found 2467 2468(A) You've accidentally run your script through the Bourne shell instead 2469of Perl. Check the #! line, or manually feed your script into Perl 2470yourself. 2471 2472=item no UTC offset information; assuming local time is UTC 2473 2474(S) A warning peculiar to VMS. Perl was unable to find the local 2475timezone offset, so it's assuming that local system time is equivalent 2476to UTC. If it's not, define the logical name 2477F<SYS$TIMEZONE_DIFFERENTIAL> to translate to the number of seconds which 2478need to be added to UTC to get local time. 2479 2480=item Null filename used 2481 2482(F) You can't require the null filename, especially because on many 2483machines that means the current directory! See L<perlfunc/require>. 2484 2485=item NULL OP IN RUN 2486 2487(P debugging) Some internal routine called run() with a null opcode 2488pointer. 2489 2490=item Null picture in formline 2491 2492(F) The first argument to formline must be a valid format picture 2493specification. It was found to be empty, which probably means you 2494supplied it an uninitialized value. See L<perlform>. 2495 2496=item Null realloc 2497 2498(P) An attempt was made to realloc NULL. 2499 2500=item NULL regexp argument 2501 2502(P) The internal pattern matching routines blew it big time. 2503 2504=item NULL regexp parameter 2505 2506(P) The internal pattern matching routines are out of their gourd. 2507 2508=item Number too long 2509 2510(F) Perl limits the representation of decimal numbers in programs to 2511about 250 characters. You've exceeded that length. Future 2512versions of Perl are likely to eliminate this arbitrary limitation. In 2513the meantime, try using scientific notation (e.g. "1e6" instead of 2514"1_000_000"). 2515 2516=item Octal number in vector unsupported 2517 2518(F) Numbers with a leading C<0> are not currently allowed in vectors. 2519The octal number interpretation of such numbers may be supported in a 2520future version. 2521 2522=item Octal number > 037777777777 non-portable 2523 2524(W portable) The octal number you specified is larger than 2**32-1 2525(4294967295) and therefore non-portable between systems. See 2526L<perlport> for more on portability concerns. 2527 2528See also L<perlport> for writing portable code. 2529 2530=item Odd number of arguments for overload::constant 2531 2532(W overload) The call to overload::constant contained an odd number of 2533arguments. The arguments should come in pairs. 2534 2535=item Odd number of elements in anonymous hash 2536 2537(W misc) You specified an odd number of elements to initialize a hash, 2538which is odd, because hashes come in key/value pairs. 2539 2540=item Odd number of elements in hash assignment 2541 2542(W misc) You specified an odd number of elements to initialize a hash, 2543which is odd, because hashes come in key/value pairs. 2544 2545=item Offset outside string 2546 2547(F) You tried to do a read/write/send/recv operation with an offset 2548pointing outside the buffer. This is difficult to imagine. The sole 2549exception to this is that C<sysread()>ing past the buffer will extend 2550the buffer and zero pad the new area. 2551 2552=item %s() on unopened %s 2553 2554(W unopened) An I/O operation was attempted on a filehandle that was 2555never initialized. You need to do an open(), a sysopen(), or a socket() 2556call, or call a constructor from the FileHandle package. 2557 2558=item -%s on unopened filehandle %s 2559 2560(W unopened) You tried to invoke a file test operator on a filehandle 2561that isn't open. Check your control flow. See also L<perlfunc/-X>. 2562 2563=item oops: oopsAV 2564 2565(S internal) An internal warning that the grammar is screwed up. 2566 2567=item oops: oopsHV 2568 2569(S internal) An internal warning that the grammar is screwed up. 2570 2571=item Operation `%s': no method found, %s 2572 2573(F) An attempt was made to perform an overloaded operation for which no 2574handler was defined. While some handlers can be autogenerated in terms 2575of other handlers, there is no default handler for any operation, unless 2576C<fallback> overloading key is specified to be true. See L<overload>. 2577 2578=item Operator or semicolon missing before %s 2579 2580(S ambiguous) You used a variable or subroutine call where the parser 2581was expecting an operator. The parser has assumed you really meant to 2582use an operator, but this is highly likely to be incorrect. For 2583example, if you say "*foo *foo" it will be interpreted as if you said 2584"*foo * 'foo'". 2585 2586=item "our" variable %s redeclared 2587 2588(W misc) You seem to have already declared the same global once before 2589in the current lexical scope. 2590 2591=item Out of memory! 2592 2593(X) The malloc() function returned 0, indicating there was insufficient 2594remaining memory (or virtual memory) to satisfy the request. Perl has 2595no option but to exit immediately. 2596 2597At least in Unix you may be able to get past this by increasing your 2598process datasize limits: in csh/tcsh use C<limit> and 2599C<limit datasize n> (where C<n> is the number of kilobytes) to check 2600the current limits and change them, and in ksh/bash/zsh use C<ulimit -a> 2601and C<ulimit -d n>, respectively. 2602 2603=item Out of memory during "large" request for %s 2604 2605(F) The malloc() function returned 0, indicating there was insufficient 2606remaining memory (or virtual memory) to satisfy the request. However, 2607the request was judged large enough (compile-time default is 64K), so a 2608possibility to shut down by trapping this error is granted. 2609 2610=item Out of memory during request for %s 2611 2612(X|F) The malloc() function returned 0, indicating there was 2613insufficient remaining memory (or virtual memory) to satisfy the 2614request. 2615 2616The request was judged to be small, so the possibility to trap it 2617depends on the way perl was compiled. By default it is not trappable. 2618However, if compiled for this, Perl may use the contents of C<$^M> as an 2619emergency pool after die()ing with this message. In this case the error 2620is trappable I<once>, and the error message will include the line and file 2621where the failed request happened. 2622 2623=item Out of memory during ridiculously large request 2624 2625(F) You can't allocate more than 2^31+"small amount" bytes. This error 2626is most likely to be caused by a typo in the Perl program. e.g., 2627C<$arr[time]> instead of C<$arr[$time]>. 2628 2629=item Out of memory for yacc stack 2630 2631(F) The yacc parser wanted to grow its stack so it could continue 2632parsing, but realloc() wouldn't give it more memory, virtual or 2633otherwise. 2634 2635=item '@' outside of string in unpack 2636 2637(F) You had a template that specified an absolute position outside 2638the string being unpacked. See L<perlfunc/pack>. 2639 2640=item %s package attribute may clash with future reserved word: %s 2641 2642(W reserved) A lowercase attribute name was used that had a 2643package-specific handler. That name might have a meaning to Perl itself 2644some day, even though it doesn't yet. Perhaps you should use a 2645mixed-case attribute name, instead. See L<attributes>. 2646 2647=item pack/unpack repeat count overflow 2648 2649(F) You can't specify a repeat count so large that it overflows your 2650signed integers. See L<perlfunc/pack>. 2651 2652=item page overflow 2653 2654(W io) A single call to write() produced more lines than can fit on a 2655page. See L<perlform>. 2656 2657=item panic: %s 2658 2659(P) An internal error. 2660 2661=item panic: array extend 2662 2663(P) An attempt was made to extend an array beyond the largest possible 2664memory allocation. 2665 2666=item panic: ck_grep 2667 2668(P) Failed an internal consistency check trying to compile a grep. 2669 2670=item panic: ck_split 2671 2672(P) Failed an internal consistency check trying to compile a split. 2673 2674=item panic: corrupt saved stack index 2675 2676(P) The savestack was requested to restore more localized values than 2677there are in the savestack. 2678 2679=item panic: del_backref 2680 2681(P) Failed an internal consistency check while trying to reset a weak 2682reference. 2683 2684=item panic: Devel::DProf inconsistent subroutine return 2685 2686(P) Devel::DProf called a subroutine that exited using goto(LABEL), 2687last(LABEL) or next(LABEL). Leaving that way a subroutine called from 2688an XSUB will lead very probably to a crash of the interpreter. This is 2689a bug that will hopefully one day get fixed. 2690 2691=item panic: die %s 2692 2693(P) We popped the context stack to an eval context, and then discovered 2694it wasn't an eval context. 2695 2696=item panic: do_subst 2697 2698(P) The internal pp_subst() routine was called with invalid operational 2699data. 2700 2701=item panic: do_trans_%s 2702 2703(P) The internal do_trans routines were called with invalid operational 2704data. 2705 2706=item panic: frexp 2707 2708(P) The library function frexp() failed, making printf("%f") impossible. 2709 2710=item panic: goto 2711 2712(P) We popped the context stack to a context with the specified label, 2713and then discovered it wasn't a context we know how to do a goto in. 2714 2715=item panic: INTERPCASEMOD 2716 2717(P) The lexer got into a bad state at a case modifier. 2718 2719=item panic: INTERPCONCAT 2720 2721(P) The lexer got into a bad state parsing a string with brackets. 2722 2723=item panic: kid popen errno read 2724 2725(F) forked child returned an incomprehensible message about its errno. 2726 2727=item panic: last 2728 2729(P) We popped the context stack to a block context, and then discovered 2730it wasn't a block context. 2731 2732=item panic: leave_scope clearsv 2733 2734(P) A writable lexical variable became read-only somehow within the 2735scope. 2736 2737=item panic: leave_scope inconsistency 2738 2739(P) The savestack probably got out of sync. At least, there was an 2740invalid enum on the top of it. 2741 2742=item panic: list extend 2743 2744(P) An attempt was made to extend a list beyond the largest possible 2745memory allocation. 2746 2747=item panic: magic_killbackrefs 2748 2749(P) Failed an internal consistency check while trying to reset all weak 2750references to an object. 2751 2752=item panic: malloc 2753 2754(P) Something requested a negative number of bytes of malloc. 2755 2756=item panic: mapstart 2757 2758(P) The compiler is screwed up with respect to the map() function. 2759 2760=item panic: memory wrap 2761 2762(P) Something tried to allocate more memory than possible. 2763 2764=item panic: null array 2765 2766(P) One of the internal array routines was passed a null AV pointer. 2767 2768=item panic: pad_alloc 2769 2770(P) The compiler got confused about which scratch pad it was allocating 2771and freeing temporaries and lexicals from. 2772 2773=item panic: pad_free curpad 2774 2775(P) The compiler got confused about which scratch pad it was allocating 2776and freeing temporaries and lexicals from. 2777 2778=item panic: pad_free po 2779 2780(P) An invalid scratch pad offset was detected internally. 2781 2782=item panic: pad_reset curpad 2783 2784(P) The compiler got confused about which scratch pad it was allocating 2785and freeing temporaries and lexicals from. 2786 2787=item panic: pad_sv po 2788 2789(P) An invalid scratch pad offset was detected internally. 2790 2791=item panic: pad_swipe curpad 2792 2793(P) The compiler got confused about which scratch pad it was allocating 2794and freeing temporaries and lexicals from. 2795 2796=item panic: pad_swipe po 2797 2798(P) An invalid scratch pad offset was detected internally. 2799 2800=item panic: pp_iter 2801 2802(P) The foreach iterator got called in a non-loop context frame. 2803 2804=item panic: pp_match%s 2805 2806(P) The internal pp_match() routine was called with invalid operational 2807data. 2808 2809=item panic: pp_split 2810 2811(P) Something terrible went wrong in setting up for the split. 2812 2813=item panic: realloc 2814 2815(P) Something requested a negative number of bytes of realloc. 2816 2817=item panic: restartop 2818 2819(P) Some internal routine requested a goto (or something like it), and 2820didn't supply the destination. 2821 2822=item panic: return 2823 2824(P) We popped the context stack to a subroutine or eval context, and 2825then discovered it wasn't a subroutine or eval context. 2826 2827=item panic: scan_num 2828 2829(P) scan_num() got called on something that wasn't a number. 2830 2831=item panic: string extend 2832 2833(P) An attempt was made to extend a string beyond the largest possible 2834memory allocation. 2835 2836=item panic: sv_insert 2837 2838(P) The sv_insert() routine was told to remove more string than there 2839was string. 2840 2841=item panic: top_env 2842 2843(P) The compiler attempted to do a goto, or something weird like that. 2844 2845=item panic: utf16_to_utf8: odd bytelen 2846 2847(P) Something tried to call utf16_to_utf8 with an odd (as opposed 2848to even) byte length. 2849 2850=item panic: yylex 2851 2852(P) The lexer got into a bad state while processing a case modifier. 2853 2854=item Parentheses missing around "%s" list 2855 2856(W parenthesis) You said something like 2857 2858 my $foo, $bar = @_; 2859 2860when you meant 2861 2862 my ($foo, $bar) = @_; 2863 2864Remember that "my", "our", and "local" bind tighter than comma. 2865 2866=item C<-p> destination: %s 2867 2868(F) An error occurred during the implicit output invoked by the C<-p> 2869command-line switch. (This output goes to STDOUT unless you've 2870redirected it with select().) 2871 2872=item (perhaps you forgot to load "%s"?) 2873 2874(F) This is an educated guess made in conjunction with the message 2875"Can't locate object method \"%s\" via package \"%s\"". It often means 2876that a method requires a package that has not been loaded. 2877 2878=item Perl %s required--this is only version %s, stopped 2879 2880(F) The module in question uses features of a version of Perl more 2881recent than the currently running version. How long has it been since 2882you upgraded, anyway? See L<perlfunc/require>. 2883 2884=item PERL_SH_DIR too long 2885 2886(F) An error peculiar to OS/2. PERL_SH_DIR is the directory to find the 2887C<sh>-shell in. See "PERL_SH_DIR" in L<perlos2>. 2888 2889=item PERL_SIGNALS illegal: "%s" 2890 2891See L<perlrun/PERL_SIGNALS> for legal values. 2892 2893=item perl: warning: Setting locale failed. 2894 2895(S) The whole warning message will look something like: 2896 2897 perl: warning: Setting locale failed. 2898 perl: warning: Please check that your locale settings: 2899 LC_ALL = "En_US", 2900 LANG = (unset) 2901 are supported and installed on your system. 2902 perl: warning: Falling back to the standard locale ("C"). 2903 2904Exactly what were the failed locale settings varies. In the above the 2905settings were that the LC_ALL was "En_US" and the LANG had no value. 2906This error means that Perl detected that you and/or your operating 2907system supplier and/or system administrator have set up the so-called 2908locale system but Perl could not use those settings. This was not 2909dead serious, fortunately: there is a "default locale" called "C" that 2910Perl can and will use, the script will be run. Before you really fix 2911the problem, however, you will get the same error message each time 2912you run Perl. How to really fix the problem can be found in 2913L<perllocale> section B<LOCALE PROBLEMS>. 2914 2915=item Permission denied 2916 2917(F) The setuid emulator in suidperl decided you were up to no good. 2918 2919=item pid %x not a child 2920 2921(W exec) A warning peculiar to VMS. Waitpid() was asked to wait for a 2922process which isn't a subprocess of the current process. While this is 2923fine from VMS' perspective, it's probably not what you intended. 2924 2925=item 'P' must have an explicit size in unpack 2926 2927(F) The unpack format P must have an explicit size, not "*". 2928 2929=item B<-P> not allowed for setuid/setgid script 2930 2931(F) The script would have to be opened by the C preprocessor by name, 2932which provides a race condition that breaks security. 2933 2934=item POSIX class [:%s:] unknown in regex; marked by <-- HERE in m/%s/ 2935 2936(F) The class in the character class [: :] syntax is unknown. The <-- HERE 2937shows in the regular expression about where the problem was discovered. 2938Note that the POSIX character classes do B<not> have the C<is> prefix 2939the corresponding C interfaces have: in other words, it's C<[[:print:]]>, 2940not C<isprint>. See L<perlre>. 2941 2942=item POSIX getpgrp can't take an argument 2943 2944(F) Your system has POSIX getpgrp(), which takes no argument, unlike 2945the BSD version, which takes a pid. 2946 2947=item POSIX syntax [%s] belongs inside character classes in regex; marked by <-- HERE in m/%s/ 2948 2949(W regexp) The character class constructs [: :], [= =], and [. .] go 2950I<inside> character classes, the [] are part of the construct, for example: 2951/[012[:alpha:]345]/. Note that [= =] and [. .] are not currently 2952implemented; they are simply placeholders for future extensions and will 2953cause fatal errors. The <-- HERE shows in the regular expression about 2954where the problem was discovered. See L<perlre>. 2955 2956=item POSIX syntax [. .] is reserved for future extensions in regex; marked by <-- HERE in m/%s/ 2957 2958(F regexp) Within regular expression character classes ([]) the syntax 2959beginning with "[." and ending with ".]" is reserved for future extensions. 2960If you need to represent those character sequences inside a regular 2961expression character class, just quote the square brackets with the 2962backslash: "\[." and ".\]". The <-- HERE shows in the regular expression 2963about where the problem was discovered. See L<perlre>. 2964 2965=item POSIX syntax [= =] is reserved for future extensions in regex; marked by <-- HERE in m/%s/ 2966 2967(F) Within regular expression character classes ([]) the syntax beginning 2968with "[=" and ending with "=]" is reserved for future extensions. If you 2969need to represent those character sequences inside a regular expression 2970character class, just quote the square brackets with the backslash: "\[=" 2971and "=\]". The <-- HERE shows in the regular expression about where the 2972problem was discovered. See L<perlre>. 2973 2974=item Possible attempt to put comments in qw() list 2975 2976(W qw) qw() lists contain items separated by whitespace; as with literal 2977strings, comment characters are not ignored, but are instead treated as 2978literal data. (You may have used different delimiters than the 2979parentheses shown here; braces are also frequently used.) 2980 2981You probably wrote something like this: 2982 2983 @list = qw( 2984 a # a comment 2985 b # another comment 2986 ); 2987 2988when you should have written this: 2989 2990 @list = qw( 2991 a 2992 b 2993 ); 2994 2995If you really want comments, build your list the 2996old-fashioned way, with quotes and commas: 2997 2998 @list = ( 2999 'a', # a comment 3000 'b', # another comment 3001 ); 3002 3003=item Possible attempt to separate words with commas 3004 3005(W qw) qw() lists contain items separated by whitespace; therefore 3006commas aren't needed to separate the items. (You may have used 3007different delimiters than the parentheses shown here; braces are also 3008frequently used.) 3009 3010You probably wrote something like this: 3011 3012 qw! a, b, c !; 3013 3014which puts literal commas into some of the list items. Write it without 3015commas if you don't want them to appear in your data: 3016 3017 qw! a b c !; 3018 3019=item Possible memory corruption: %s overflowed 3rd argument 3020 3021(F) An ioctl() or fcntl() returned more than Perl was bargaining for. 3022Perl guesses a reasonable buffer size, but puts a sentinel byte at the 3023end of the buffer just in case. This sentinel byte got clobbered, and 3024Perl assumes that memory is now corrupted. See L<perlfunc/ioctl>. 3025 3026=item Possible precedence problem on bitwise %c operator 3027 3028(W precedence) Your program uses a bitwise logical operator in conjunction 3029with a numeric comparison operator, like this : 3030 3031 if ($x & $y == 0) { ... } 3032 3033This expression is actually equivalent to C<$x & ($y == 0)>, due to the 3034higher precedence of C<==>. This is probably not what you want. (If you 3035really meant to write this, disable the warning, or, better, put the 3036parentheses explicitly and write C<$x & ($y == 0)>). 3037 3038=item Possible unintended interpolation of %s in string 3039 3040(W ambiguous) You said something like `@foo' in a double-quoted string 3041but there was no array C<@foo> in scope at the time. If you wanted a 3042literal @foo, then write it as \@foo; otherwise find out what happened 3043to the array you apparently lost track of. 3044 3045=item Possible Y2K bug: %s 3046 3047(W y2k) You are concatenating the number 19 with another number, which 3048could be a potential Year 2000 problem. 3049 3050=item pragma "attrs" is deprecated, use "sub NAME : ATTRS" instead 3051 3052(D deprecated) You have written something like this: 3053 3054 sub doit 3055 { 3056 use attrs qw(locked); 3057 } 3058 3059You should use the new declaration syntax instead. 3060 3061 sub doit : locked 3062 { 3063 ... 3064 3065The C<use attrs> pragma is now obsolete, and is only provided for 3066backward-compatibility. See L<perlsub/"Subroutine Attributes">. 3067 3068=item Precedence problem: open %s should be open(%s) 3069 3070(S precedence) The old irregular construct 3071 3072 open FOO || die; 3073 3074is now misinterpreted as 3075 3076 open(FOO || die); 3077 3078because of the strict regularization of Perl 5's grammar into unary and 3079list operators. (The old open was a little of both.) You must put 3080parentheses around the filehandle, or use the new "or" operator instead 3081of "||". 3082 3083=item Premature end of script headers 3084 3085See Server error. 3086 3087=item printf() on closed filehandle %s 3088 3089(W closed) The filehandle you're writing to got itself closed sometime 3090before now. Check your control flow. 3091 3092=item print() on closed filehandle %s 3093 3094(W closed) The filehandle you're printing on got itself closed sometime 3095before now. Check your control flow. 3096 3097=item Process terminated by SIG%s 3098 3099(W) This is a standard message issued by OS/2 applications, while *nix 3100applications die in silence. It is considered a feature of the OS/2 3101port. One can easily disable this by appropriate sighandlers, see 3102L<perlipc/"Signals">. See also "Process terminated by SIGTERM/SIGINT" 3103in L<perlos2>. 3104 3105=item Prototype mismatch: %s vs %s 3106 3107(S prototype) The subroutine being declared or defined had previously been 3108declared or defined with a different function prototype. 3109 3110=item Prototype not terminated 3111 3112(F) You've omitted the closing parenthesis in a function prototype 3113definition. 3114 3115=item Pseudo-hashes are deprecated 3116 3117(D deprecated) Pseudo-hashes were deprecated in Perl 5.8.0 and they 3118will be removed in Perl 5.10.0, see L<perl58delta> for more details. 3119You can continue to use the C<fields> pragma. 3120 3121=item Quantifier follows nothing in regex; marked by <-- HERE in m/%s/ 3122 3123(F) You started a regular expression with a quantifier. Backslash it if you 3124meant it literally. The <-- HERE shows in the regular expression about 3125where the problem was discovered. See L<perlre>. 3126 3127=item Quantifier in {,} bigger than %d in regex; marked by <-- HERE in m/%s/ 3128 3129(F) There is currently a limit to the size of the min and max values of the 3130{min,max} construct. The <-- HERE shows in the regular expression about where 3131the problem was discovered. See L<perlre>. 3132 3133=item Quantifier unexpected on zero-length expression; marked by <-- HERE in m/%s/ 3134 3135(W regexp) You applied a regular expression quantifier in a place where 3136it makes no sense, such as on a zero-width assertion. Try putting the 3137quantifier inside the assertion instead. For example, the way to match 3138"abc" provided that it is followed by three repetitions of "xyz" is 3139C</abc(?=(?:xyz){3})/>, not C</abc(?=xyz){3}/>. 3140 3141The <-- HERE shows in the regular expression about where the problem was 3142discovered. 3143 3144=item Range iterator outside integer range 3145 3146(F) One (or both) of the numeric arguments to the range operator ".." 3147are outside the range which can be represented by integers internally. 3148One possible workaround is to force Perl to use magical string increment 3149by prepending "0" to your numbers. 3150 3151=item readline() on closed filehandle %s 3152 3153(W closed) The filehandle you're reading from got itself closed sometime 3154before now. Check your control flow. 3155 3156=item read() on closed filehandle %s 3157 3158(W closed) You tried to read from a closed filehandle. 3159 3160=item read() on unopened filehandle %s 3161 3162(W unopened) You tried to read from a filehandle that was never opened. 3163 3164=item Reallocation too large: %lx 3165 3166(F) You can't allocate more than 64K on an MS-DOS machine. 3167 3168=item realloc() of freed memory ignored 3169 3170(S malloc) An internal routine called realloc() on something that had 3171already been freed. 3172 3173=item Recompile perl with B<-D>DEBUGGING to use B<-D> switch 3174 3175(F debugging) You can't use the B<-D> option unless the code to produce 3176the desired output is compiled into Perl, which entails some overhead, 3177which is why it's currently left out of your copy. 3178 3179=item Recursive inheritance detected in package '%s' 3180 3181(F) More than 100 levels of inheritance were used. Probably indicates 3182an unintended loop in your inheritance hierarchy. 3183 3184=item Recursive inheritance detected while looking for method %s 3185 3186(F) More than 100 levels of inheritance were encountered while invoking 3187a method. Probably indicates an unintended loop in your inheritance 3188hierarchy. 3189 3190=item Reference found where even-sized list expected 3191 3192(W misc) You gave a single reference where Perl was expecting a list 3193with an even number of elements (for assignment to a hash). This usually 3194means that you used the anon hash constructor when you meant to use 3195parens. In any case, a hash requires key/value B<pairs>. 3196 3197 %hash = { one => 1, two => 2, }; # WRONG 3198 %hash = [ qw/ an anon array / ]; # WRONG 3199 %hash = ( one => 1, two => 2, ); # right 3200 %hash = qw( one 1 two 2 ); # also fine 3201 3202=item Reference is already weak 3203 3204(W misc) You have attempted to weaken a reference that is already weak. 3205Doing so has no effect. 3206 3207=item Reference miscount in sv_replace() 3208 3209(W internal) The internal sv_replace() function was handed a new SV with 3210a reference count of other than 1. 3211 3212=item Reference to nonexistent group in regex; marked by <-- HERE in m/%s/ 3213 3214(F) You used something like C<\7> in your regular expression, but there are 3215not at least seven sets of capturing parentheses in the expression. If you 3216wanted to have the character with value 7 inserted into the regular expression, 3217prepend a zero to make the number at least two digits: C<\07> 3218 3219The <-- HERE shows in the regular expression about where the problem was 3220discovered. 3221 3222=item regexp memory corruption 3223 3224(P) The regular expression engine got confused by what the regular 3225expression compiler gave it. 3226 3227=item Regexp out of space 3228 3229(P) A "can't happen" error, because safemalloc() should have caught it 3230earlier. 3231 3232=item Repeated format line will never terminate (~~ and @# incompatible) 3233 3234(F) Your format containes the ~~ repeat-until-blank sequence and a 3235numeric field that will never go blank so that the repetition never 3236terminates. You might use ^# instead. See L<perlform>. 3237 3238=item Reversed %s= operator 3239 3240(W syntax) You wrote your assignment operator backwards. The = must 3241always comes last, to avoid ambiguity with subsequent unary operators. 3242 3243=item Runaway format 3244 3245(F) Your format contained the ~~ repeat-until-blank sequence, but it 3246produced 200 lines at once, and the 200th line looked exactly like the 3247199th line. Apparently you didn't arrange for the arguments to exhaust 3248themselves, either by using ^ instead of @ (for scalar variables), or by 3249shifting or popping (for array variables). See L<perlform>. 3250 3251=item Scalars leaked: %d 3252 3253(P) Something went wrong in Perl's internal bookkeeping of scalars: 3254not all scalar variables were deallocated by the time Perl exited. 3255What this usually indicates is a memory leak, which is of course bad, 3256especially if the Perl program is intended to be long-running. 3257 3258=item Scalar value @%s[%s] better written as $%s[%s] 3259 3260(W syntax) You've used an array slice (indicated by @) to select a 3261single element of an array. Generally it's better to ask for a scalar 3262value (indicated by $). The difference is that C<$foo[&bar]> always 3263behaves like a scalar, both when assigning to it and when evaluating its 3264argument, while C<@foo[&bar]> behaves like a list when you assign to it, 3265and provides a list context to its subscript, which can do weird things 3266if you're expecting only one subscript. 3267 3268On the other hand, if you were actually hoping to treat the array 3269element as a list, you need to look into how references work, because 3270Perl will not magically convert between scalars and lists for you. See 3271L<perlref>. 3272 3273=item Scalar value @%s{%s} better written as $%s{%s} 3274 3275(W syntax) You've used a hash slice (indicated by @) to select a single 3276element of a hash. Generally it's better to ask for a scalar value 3277(indicated by $). The difference is that C<$foo{&bar}> always behaves 3278like a scalar, both when assigning to it and when evaluating its 3279argument, while C<@foo{&bar}> behaves like a list when you assign to it, 3280and provides a list context to its subscript, which can do weird things 3281if you're expecting only one subscript. 3282 3283On the other hand, if you were actually hoping to treat the hash element 3284as a list, you need to look into how references work, because Perl will 3285not magically convert between scalars and lists for you. See 3286L<perlref>. 3287 3288=item Script is not setuid/setgid in suidperl 3289 3290(F) Oddly, the suidperl program was invoked on a script without a setuid 3291or setgid bit set. This doesn't make much sense. 3292 3293=item Search pattern not terminated 3294 3295(F) The lexer couldn't find the final delimiter of a // or m{} 3296construct. Remember that bracketing delimiters count nesting level. 3297Missing the leading C<$> from a variable C<$m> may cause this error. 3298 3299Note that since Perl 5.9.0 a // can also be the I<defined-or> 3300construct, not just the empty search pattern. Therefore code written 3301in Perl 5.9.0 or later that uses the // as the I<defined-or> can be 3302misparsed by pre-5.9.0 Perls as a non-terminated search pattern. 3303 3304=item %sseek() on unopened filehandle 3305 3306(W unopened) You tried to use the seek() or sysseek() function on a 3307filehandle that was either never opened or has since been closed. 3308 3309=item select not implemented 3310 3311(F) This machine doesn't implement the select() system call. 3312 3313=item Self-ties of arrays and hashes are not supported 3314 3315(F) Self-ties are of arrays and hashes are not supported in 3316the current implementation. 3317 3318=item Semicolon seems to be missing 3319 3320(W semicolon) A nearby syntax error was probably caused by a missing 3321semicolon, or possibly some other missing operator, such as a comma. 3322 3323=item semi-panic: attempt to dup freed string 3324 3325(S internal) The internal newSVsv() routine was called to duplicate a 3326scalar that had previously been marked as free. 3327 3328=item sem%s not implemented 3329 3330(F) You don't have System V semaphore IPC on your system. 3331 3332=item send() on closed socket %s 3333 3334(W closed) The socket you're sending to got itself closed sometime 3335before now. Check your control flow. 3336 3337=item Sequence (? incomplete in regex; marked by <-- HERE in m/%s/ 3338 3339(F) A regular expression ended with an incomplete extension (?. The <-- HERE 3340shows in the regular expression about where the problem was discovered. See 3341L<perlre>. 3342 3343=item Sequence (?%s...) not implemented in regex; marked by <-- HERE in m/%s/ 3344 3345(F) A proposed regular expression extension has the character reserved but 3346has not yet been written. The <-- HERE shows in the regular expression about 3347where the problem was discovered. See L<perlre>. 3348 3349=item Sequence (?%s...) not recognized in regex; marked by <-- HERE in m/%s/ 3350 3351(F) You used a regular expression extension that doesn't make sense. The 3352<-- HERE shows in the regular expression about where the problem was 3353discovered. See L<perlre>. 3354 3355=item Sequence (?#... not terminated in regex; marked by <-- HERE in m/%s/ 3356 3357(F) A regular expression comment must be terminated by a closing 3358parenthesis. Embedded parentheses aren't allowed. The <-- HERE shows in 3359the regular expression about where the problem was discovered. See 3360L<perlre>. 3361 3362=item Sequence (?{...}) not terminated or not {}-balanced in regex; marked by <-- HERE in m/%s/ 3363 3364(F) If the contents of a (?{...}) clause contains braces, they must balance 3365for Perl to properly detect the end of the clause. The <-- HERE shows in 3366the regular expression about where the problem was discovered. See 3367L<perlre>. 3368 3369=item 500 Server error 3370 3371See Server error. 3372 3373=item Server error 3374 3375This is the error message generally seen in a browser window when trying 3376to run a CGI program (including SSI) over the web. The actual error text 3377varies widely from server to server. The most frequently-seen variants 3378are "500 Server error", "Method (something) not permitted", "Document 3379contains no data", "Premature end of script headers", and "Did not 3380produce a valid header". 3381 3382B<This is a CGI error, not a Perl error>. 3383 3384You need to make sure your script is executable, is accessible by the 3385user CGI is running the script under (which is probably not the user 3386account you tested it under), does not rely on any environment variables 3387(like PATH) from the user it isn't running under, and isn't in a 3388location where the CGI server can't find it, basically, more or less. 3389Please see the following for more information: 3390 3391 http://www.perl.org/CGI_MetaFAQ.html 3392 http://www.htmlhelp.org/faq/cgifaq.html 3393 http://www.w3.org/Security/Faq/ 3394 3395You should also look at L<perlfaq9>. 3396 3397=item setegid() not implemented 3398 3399(F) You tried to assign to C<$)>, and your operating system doesn't 3400support the setegid() system call (or equivalent), or at least Configure 3401didn't think so. 3402 3403=item seteuid() not implemented 3404 3405(F) You tried to assign to C<< $> >>, and your operating system doesn't 3406support the seteuid() system call (or equivalent), or at least Configure 3407didn't think so. 3408 3409=item setpgrp can't take arguments 3410 3411(F) Your system has the setpgrp() from BSD 4.2, which takes no 3412arguments, unlike POSIX setpgid(), which takes a process ID and process 3413group ID. 3414 3415=item setrgid() not implemented 3416 3417(F) You tried to assign to C<$(>, and your operating system doesn't 3418support the setrgid() system call (or equivalent), or at least Configure 3419didn't think so. 3420 3421=item setruid() not implemented 3422 3423(F) You tried to assign to C<$<>, and your operating system doesn't 3424support the setruid() system call (or equivalent), or at least Configure 3425didn't think so. 3426 3427=item setsockopt() on closed socket %s 3428 3429(W closed) You tried to set a socket option on a closed socket. Did you 3430forget to check the return value of your socket() call? See 3431L<perlfunc/setsockopt>. 3432 3433=item Setuid/gid script is writable by world 3434 3435(F) The setuid emulator won't run a script that is writable by the 3436world, because the world might have written on it already. 3437 3438=item shm%s not implemented 3439 3440(F) You don't have System V shared memory IPC on your system. 3441 3442=item <> should be quotes 3443 3444(F) You wrote C<< require <file> >> when you should have written 3445C<require 'file'>. 3446 3447=item /%s/ should probably be written as "%s" 3448 3449(W syntax) You have used a pattern where Perl expected to find a string, 3450as in the first argument to C<join>. Perl will treat the true or false 3451result of matching the pattern against $_ as the string, which is 3452probably not what you had in mind. 3453 3454=item shutdown() on closed socket %s 3455 3456(W closed) You tried to do a shutdown on a closed socket. Seems a bit 3457superfluous. 3458 3459=item SIG%s handler "%s" not defined 3460 3461(W signal) The signal handler named in %SIG doesn't, in fact, exist. 3462Perhaps you put it into the wrong package? 3463 3464=item sort is now a reserved word 3465 3466(F) An ancient error message that almost nobody ever runs into anymore. 3467But before sort was a keyword, people sometimes used it as a filehandle. 3468 3469=item Sort subroutine didn't return a numeric value 3470 3471(F) A sort comparison routine must return a number. You probably blew 3472it by not using C<< <=> >> or C<cmp>, or by not using them correctly. 3473See L<perlfunc/sort>. 3474 3475=item Sort subroutine didn't return single value 3476 3477(F) A sort comparison subroutine may not return a list value with more 3478or less than one element. See L<perlfunc/sort>. 3479 3480=item splice() offset past end of array 3481 3482(W misc) You attempted to specify an offset that was past the end of 3483the array passed to splice(). Splicing will instead commence at the end 3484of the array, rather than past it. If this isn't what you want, try 3485explicitly pre-extending the array by assigning $#array = $offset. See 3486L<perlfunc/splice>. 3487 3488=item Split loop 3489 3490(P) The split was looping infinitely. (Obviously, a split shouldn't 3491iterate more times than there are characters of input, which is what 3492happened.) See L<perlfunc/split>. 3493 3494=item Statement unlikely to be reached 3495 3496(W exec) You did an exec() with some statement after it other than a 3497die(). This is almost always an error, because exec() never returns 3498unless there was a failure. You probably wanted to use system() 3499instead, which does return. To suppress this warning, put the exec() in 3500a block by itself. 3501 3502=item stat() on unopened filehandle %s 3503 3504(W unopened) You tried to use the stat() function on a filehandle that 3505was either never opened or has since been closed. 3506 3507=item Stub found while resolving method `%s' overloading %s 3508 3509(P) Overloading resolution over @ISA tree may be broken by importation 3510stubs. Stubs should never be implicitly created, but explicit calls to 3511C<can> may break this. 3512 3513=item Subroutine %s redefined 3514 3515(W redefine) You redefined a subroutine. To suppress this warning, say 3516 3517 { 3518 no warnings 'redefine'; 3519 eval "sub name { ... }"; 3520 } 3521 3522=item Substitution loop 3523 3524(P) The substitution was looping infinitely. (Obviously, a substitution 3525shouldn't iterate more times than there are characters of input, which 3526is what happened.) See the discussion of substitution in 3527L<perlop/"Quote and Quote-like Operators">. 3528 3529=item Substitution pattern not terminated 3530 3531(F) The lexer couldn't find the interior delimiter of an s/// or s{}{} 3532construct. Remember that bracketing delimiters count nesting level. 3533Missing the leading C<$> from variable C<$s> may cause this error. 3534 3535=item Substitution replacement not terminated 3536 3537(F) The lexer couldn't find the final delimiter of an s/// or s{}{} 3538construct. Remember that bracketing delimiters count nesting level. 3539Missing the leading C<$> from variable C<$s> may cause this error. 3540 3541=item substr outside of string 3542 3543(W substr),(F) You tried to reference a substr() that pointed outside of 3544a string. That is, the absolute value of the offset was larger than the 3545length of the string. See L<perlfunc/substr>. This warning is fatal if 3546substr is used in an lvalue context (as the left hand side of an 3547assignment or as a subroutine argument for example). 3548 3549=item suidperl is no longer needed since %s 3550 3551(F) Your Perl was compiled with B<-D>SETUID_SCRIPTS_ARE_SECURE_NOW, but 3552a version of the setuid emulator somehow got run anyway. 3553 3554=item Switch (?(condition)... contains too many branches in regex; marked by <-- HERE in m/%s/ 3555 3556(F) A (?(condition)if-clause|else-clause) construct can have at most two 3557branches (the if-clause and the else-clause). If you want one or both to 3558contain alternation, such as using C<this|that|other>, enclose it in 3559clustering parentheses: 3560 3561 (?(condition)(?:this|that|other)|else-clause) 3562 3563The <-- HERE shows in the regular expression about where the problem was 3564discovered. See L<perlre>. 3565 3566=item Switch condition not recognized in regex; marked by <-- HERE in m/%s/ 3567 3568(F) If the argument to the (?(...)if-clause|else-clause) construct is a 3569number, it can be only a number. The <-- HERE shows in the regular expression 3570about where the problem was discovered. See L<perlre>. 3571 3572=item switching effective %s is not implemented 3573 3574(F) While under the C<use filetest> pragma, we cannot switch the real 3575and effective uids or gids. 3576 3577=item %s syntax 3578 3579(F) The final summary message when a C<perl -c> succeeds. 3580 3581=item syntax error 3582 3583(F) Probably means you had a syntax error. Common reasons include: 3584 3585 A keyword is misspelled. 3586 A semicolon is missing. 3587 A comma is missing. 3588 An opening or closing parenthesis is missing. 3589 An opening or closing brace is missing. 3590 A closing quote is missing. 3591 3592Often there will be another error message associated with the syntax 3593error giving more information. (Sometimes it helps to turn on B<-w>.) 3594The error message itself often tells you where it was in the line when 3595it decided to give up. Sometimes the actual error is several tokens 3596before this, because Perl is good at understanding random input. 3597Occasionally the line number may be misleading, and once in a blue moon 3598the only way to figure out what's triggering the error is to call 3599C<perl -c> repeatedly, chopping away half the program each time to see 3600if the error went away. Sort of the cybernetic version of S<20 3601questions>. 3602 3603=item syntax error at line %d: `%s' unexpected 3604 3605(A) You've accidentally run your script through the Bourne shell instead 3606of Perl. Check the #! line, or manually feed your script into Perl 3607yourself. 3608 3609=item syntax error in file %s at line %d, next 2 tokens "%s" 3610 3611(F) This error is likely to occur if you run a perl5 script through 3612a perl4 interpreter, especially if the next 2 tokens are "use strict" 3613or "my $var" or "our $var". 3614 3615=item sysread() on closed filehandle %s 3616 3617(W closed) You tried to read from a closed filehandle. 3618 3619=item sysread() on unopened filehandle %s 3620 3621(W unopened) You tried to read from a filehandle that was never opened. 3622 3623=item System V %s is not implemented on this machine 3624 3625(F) You tried to do something with a function beginning with "sem", 3626"shm", or "msg" but that System V IPC is not implemented in your 3627machine. In some machines the functionality can exist but be 3628unconfigured. Consult your system support. 3629 3630=item syswrite() on closed filehandle %s 3631 3632(W closed) The filehandle you're writing to got itself closed sometime 3633before now. Check your control flow. 3634 3635=item C<-T> and C<-B> not implemented on filehandles 3636 3637(F) Perl can't peek at the stdio buffer of filehandles when it doesn't 3638know about your kind of stdio. You'll have to use a filename instead. 3639 3640=item Target of goto is too deeply nested 3641 3642(F) You tried to use C<goto> to reach a label that was too deeply nested 3643for Perl to reach. Perl is doing you a favor by refusing. 3644 3645=item tell() on unopened filehandle 3646 3647(W unopened) You tried to use the tell() function on a filehandle that 3648was either never opened or has since been closed. 3649 3650=item That use of $[ is unsupported 3651 3652(F) Assignment to C<$[> is now strictly circumscribed, and interpreted 3653as a compiler directive. You may say only one of 3654 3655 $[ = 0; 3656 $[ = 1; 3657 ... 3658 local $[ = 0; 3659 local $[ = 1; 3660 ... 3661 3662This is to prevent the problem of one module changing the array base out 3663from under another module inadvertently. See L<perlvar/$[>. 3664 3665=item The crypt() function is unimplemented due to excessive paranoia 3666 3667(F) Configure couldn't find the crypt() function on your machine, 3668probably because your vendor didn't supply it, probably because they 3669think the U.S. Government thinks it's a secret, or at least that they 3670will continue to pretend that it is. And if you quote me on that, I 3671will deny it. 3672 3673=item The %s function is unimplemented 3674 3675The function indicated isn't implemented on this architecture, according 3676to the probings of Configure. 3677 3678=item The stat preceding %s wasn't an lstat 3679 3680(F) It makes no sense to test the current stat buffer for symbolic 3681linkhood if the last stat that wrote to the stat buffer already went 3682past the symlink to get to the real file. Use an actual filename 3683instead. 3684 3685=item The 'unique' attribute may only be applied to 'our' variables 3686 3687(F) Currently this attribute is not supported on C<my> or C<sub> 3688declarations. See L<perlfunc/our>. 3689 3690=item This Perl can't reset CRTL environ elements (%s) 3691 3692=item This Perl can't set CRTL environ elements (%s=%s) 3693 3694(W internal) Warnings peculiar to VMS. You tried to change or delete an 3695element of the CRTL's internal environ array, but your copy of Perl 3696wasn't built with a CRTL that contained the setenv() function. You'll 3697need to rebuild Perl with a CRTL that does, or redefine 3698F<PERL_ENV_TABLES> (see L<perlvms>) so that the environ array isn't the 3699target of the change to 3700%ENV which produced the warning. 3701 3702=item thread failed to start: %s 3703 3704(F) The entry point function of threads->create() failed for some reason. 3705 3706=item 5.005 threads are deprecated 3707 3708(D deprecated) The 5.005-style threads (activated by C<use Thread;>) 3709are deprecated and one should use the new ithreads instead, 3710see L<perl58delta> for more details. 3711 3712=item Tied variable freed while still in use 3713 3714(F) An access method for a tied variable (e.g. FETCH) did something to 3715free the variable. Since continuing the current operation is likely 3716to result in a coredump, Perl is bailing out instead. 3717 3718=item times not implemented 3719 3720(F) Your version of the C library apparently doesn't do times(). I 3721suspect you're not running on Unix. 3722 3723=item To%s: illegal mapping '%s' 3724 3725(F) You tried to define a customized To-mapping for lc(), lcfirst, 3726uc(), or ucfirst() (or their string-inlined versions), but you 3727specified an illegal mapping. 3728See L<perlunicode/"User-Defined Character Properties">. 3729 3730=item Too deeply nested ()-groups 3731 3732(F) Your template contains ()-groups with a ridiculously deep nesting level. 3733 3734=item Too few args to syscall 3735 3736(F) There has to be at least one argument to syscall() to specify the 3737system call to call, silly dilly. 3738 3739=item Too late for "-%s" option 3740 3741(X) The #! line (or local equivalent) in a Perl script contains the 3742B<-M> or B<-m> option. This is an error because B<-M> and B<-m> options 3743are not intended for use inside scripts. Use the C<use> pragma instead. 3744 3745=item Too late for "B<-T>" option 3746 3747(X) The #! line (or local equivalent) in a Perl script contains the 3748B<-T> option, but Perl was not invoked with B<-T> in its command line. 3749This is an error because, by the time Perl discovers a B<-T> in a 3750script, it's too late to properly taint everything from the environment. 3751So Perl gives up. 3752 3753If the Perl script is being executed as a command using the #! 3754mechanism (or its local equivalent), this error can usually be fixed by 3755editing the #! line so that the B<-T> option is a part of Perl's first 3756argument: e.g. change C<perl -n -T> to C<perl -T -n>. 3757 3758If the Perl script is being executed as C<perl scriptname>, then the 3759B<-T> option must appear on the command line: C<perl -T scriptname>. 3760 3761=item Too late to run %s block 3762 3763(W void) A CHECK or INIT block is being defined during run time proper, 3764when the opportunity to run them has already passed. Perhaps you are 3765loading a file with C<require> or C<do> when you should be using C<use> 3766instead. Or perhaps you should put the C<require> or C<do> inside a 3767BEGIN block. 3768 3769=item Too many args to syscall 3770 3771(F) Perl supports a maximum of only 14 args to syscall(). 3772 3773=item Too many arguments for %s 3774 3775(F) The function requires fewer arguments than you specified. 3776 3777=item Too many )'s 3778 3779(A) You've accidentally run your script through B<csh> instead of Perl. 3780Check the #! line, or manually feed your script into Perl yourself. 3781 3782=item Too many ('s 3783 3784(A) You've accidentally run your script through B<csh> instead of Perl. 3785Check the #! line, or manually feed your script into Perl yourself. 3786 3787=item Trailing \ in regex m/%s/ 3788 3789(F) The regular expression ends with an unbackslashed backslash. 3790Backslash it. See L<perlre>. 3791 3792=item Transliteration pattern not terminated 3793 3794(F) The lexer couldn't find the interior delimiter of a tr/// or tr[][] 3795or y/// or y[][] construct. Missing the leading C<$> from variables 3796C<$tr> or C<$y> may cause this error. 3797 3798=item Transliteration replacement not terminated 3799 3800(F) The lexer couldn't find the final delimiter of a tr/// or tr[][] 3801construct. 3802 3803=item '%s' trapped by operation mask 3804 3805(F) You tried to use an operator from a Safe compartment in which it's 3806disallowed. See L<Safe>. 3807 3808=item truncate not implemented 3809 3810(F) Your machine doesn't implement a file truncation mechanism that 3811Configure knows about. 3812 3813=item Type of arg %d to %s must be %s (not %s) 3814 3815(F) This function requires the argument in that position to be of a 3816certain type. Arrays must be @NAME or C<@{EXPR}>. Hashes must be 3817%NAME or C<%{EXPR}>. No implicit dereferencing is allowed--use the 3818{EXPR} forms as an explicit dereference. See L<perlref>. 3819 3820=item umask not implemented 3821 3822(F) Your machine doesn't implement the umask function and you tried to 3823use it to restrict permissions for yourself (EXPR & 0700). 3824 3825=item Unable to create sub named "%s" 3826 3827(F) You attempted to create or access a subroutine with an illegal name. 3828 3829=item Unbalanced context: %d more PUSHes than POPs 3830 3831(W internal) The exit code detected an internal inconsistency in how 3832many execution contexts were entered and left. 3833 3834=item Unbalanced saves: %d more saves than restores 3835 3836(W internal) The exit code detected an internal inconsistency in how 3837many values were temporarily localized. 3838 3839=item Unbalanced scopes: %d more ENTERs than LEAVEs 3840 3841(W internal) The exit code detected an internal inconsistency in how 3842many blocks were entered and left. 3843 3844=item Unbalanced tmps: %d more allocs than frees 3845 3846(W internal) The exit code detected an internal inconsistency in how 3847many mortal scalars were allocated and freed. 3848 3849=item Undefined format "%s" called 3850 3851(F) The format indicated doesn't seem to exist. Perhaps it's really in 3852another package? See L<perlform>. 3853 3854=item Undefined sort subroutine "%s" called 3855 3856(F) The sort comparison routine specified doesn't seem to exist. 3857Perhaps it's in a different package? See L<perlfunc/sort>. 3858 3859=item Undefined subroutine &%s called 3860 3861(F) The subroutine indicated hasn't been defined, or if it was, it has 3862since been undefined. 3863 3864=item Undefined subroutine called 3865 3866(F) The anonymous subroutine you're trying to call hasn't been defined, 3867or if it was, it has since been undefined. 3868 3869=item Undefined subroutine in sort 3870 3871(F) The sort comparison routine specified is declared but doesn't seem 3872to have been defined yet. See L<perlfunc/sort>. 3873 3874=item Undefined top format "%s" called 3875 3876(F) The format indicated doesn't seem to exist. Perhaps it's really in 3877another package? See L<perlform>. 3878 3879=item Undefined value assigned to typeglob 3880 3881(W misc) An undefined value was assigned to a typeglob, a la 3882C<*foo = undef>. This does nothing. It's possible that you really mean 3883C<undef *foo>. 3884 3885=item %s: Undefined variable 3886 3887(A) You've accidentally run your script through B<csh> instead of Perl. 3888Check the #! line, or manually feed your script into Perl yourself. 3889 3890=item unexec of %s into %s failed! 3891 3892(F) The unexec() routine failed for some reason. See your local FSF 3893representative, who probably put it there in the first place. 3894 3895=item Unicode character %s is illegal 3896 3897(W utf8) Certain Unicode characters have been designated off-limits by 3898the Unicode standard and should not be generated. If you really know 3899what you are doing you can turn off this warning by C<no warnings 'utf8';>. 3900 3901=item Unknown BYTEORDER 3902 3903(F) There are no byte-swapping functions for a machine with this byte 3904order. 3905 3906=item Unknown open() mode '%s' 3907 3908(F) The second argument of 3-argument open() is not among the list 3909of valid modes: C<< < >>, C<< > >>, C<<< >> >>>, C<< +< >>, 3910C<< +> >>, C<<< +>> >>>, C<-|>, C<|->, C<< <& >>, C<< >& >>. 3911 3912=item Unknown PerlIO layer "%s" 3913 3914(W layer) An attempt was made to push an unknown layer onto the Perl I/O 3915system. (Layers take care of transforming data between external and 3916internal representations.) Note that some layers, such as C<mmap>, 3917are not supported in all environments. If your program didn't 3918explicitly request the failing operation, it may be the result of the 3919value of the environment variable PERLIO. 3920 3921=item Unknown process %x sent message to prime_env_iter: %s 3922 3923(P) An error peculiar to VMS. Perl was reading values for %ENV before 3924iterating over it, and someone else stuck a message in the stream of 3925data Perl expected. Someone's very confused, or perhaps trying to 3926subvert Perl's population of %ENV for nefarious purposes. 3927 3928=item Unknown "re" subpragma '%s' (known ones are: %s) 3929 3930You tried to use an unknown subpragma of the "re" pragma. 3931 3932=item Unknown switch condition (?(%.2s in regex; marked by <-- HERE in m/%s/ 3933 3934(F) The condition part of a (?(condition)if-clause|else-clause) construct 3935is not known. The condition may be lookahead or lookbehind (the condition 3936is true if the lookahead or lookbehind is true), a (?{...}) construct (the 3937condition is true if the code evaluates to a true value), or a number (the 3938condition is true if the set of capturing parentheses named by the number 3939matched). 3940 3941The <-- HERE shows in the regular expression about where the problem was 3942discovered. See L<perlre>. 3943 3944=item Unknown Unicode option letter '%c' 3945 3946You specified an unknown Unicode option. See L<perlrun> documentation 3947of the C<-C> switch for the list of known options. 3948 3949=item Unknown Unicode option value %x 3950 3951You specified an unknown Unicode option. See L<perlrun> documentation 3952of the C<-C> switch for the list of known options. 3953 3954=item Unknown warnings category '%s' 3955 3956(F) An error issued by the C<warnings> pragma. You specified a warnings 3957category that is unknown to perl at this point. 3958 3959Note that if you want to enable a warnings category registered by a module 3960(e.g. C<use warnings 'File::Find'>), you must have imported this module 3961first. 3962 3963=item unmatched [ in regex; marked by <-- HERE in m/%s/ 3964 3965(F) The brackets around a character class must match. If you wish to 3966include a closing bracket in a character class, backslash it or put it 3967first. The <-- HERE shows in the regular expression about where the problem 3968was discovered. See L<perlre>. 3969 3970=item unmatched ( in regex; marked by <-- HERE in m/%s/ 3971 3972(F) Unbackslashed parentheses must always be balanced in regular 3973expressions. If you're a vi user, the % key is valuable for finding the 3974matching parenthesis. The <-- HERE shows in the regular expression about 3975where the problem was discovered. See L<perlre>. 3976 3977=item Unmatched right %s bracket 3978 3979(F) The lexer counted more closing curly or square brackets than opening 3980ones, so you're probably missing a matching opening bracket. As a 3981general rule, you'll find the missing one (so to speak) near the place 3982you were last editing. 3983 3984=item Unquoted string "%s" may clash with future reserved word 3985 3986(W reserved) You used a bareword that might someday be claimed as a 3987reserved word. It's best to put such a word in quotes, or capitalize it 3988somehow, or insert an underbar into it. You might also declare it as a 3989subroutine. 3990 3991=item Unrecognized character %s 3992 3993(F) The Perl parser has no idea what to do with the specified character 3994in your Perl script (or eval). Perhaps you tried to run a compressed 3995script, a binary program, or a directory as a Perl program. 3996 3997=item /%s/: Unrecognized escape \\%c in character class passed through 3998 3999(W regexp) You used a backslash-character combination which is not 4000recognized by Perl inside character classes. The character was 4001understood literally. 4002 4003=item Unrecognized escape \\%c passed through 4004 4005(W misc) You used a backslash-character combination which is not 4006recognized by Perl. 4007 4008=item Unrecognized escape \\%c passed through in regex; marked by <-- HERE in m/%s/ 4009 4010(W regexp) You used a backslash-character combination which is not 4011recognized by Perl. This combination appears in an interpolated variable or 4012a C<'>-delimited regular expression. The character was understood 4013literally. The <-- HERE shows in the regular expression about where the 4014escape was discovered. 4015 4016=item Unrecognized signal name "%s" 4017 4018(F) You specified a signal name to the kill() function that was not 4019recognized. Say C<kill -l> in your shell to see the valid signal names 4020on your system. 4021 4022=item Unrecognized switch: -%s (-h will show valid options) 4023 4024(F) You specified an illegal option to Perl. Don't do that. (If you 4025think you didn't do that, check the #! line to see if it's supplying the 4026bad switch on your behalf.) 4027 4028=item Unsuccessful %s on filename containing newline 4029 4030(W newline) A file operation was attempted on a filename, and that 4031operation failed, PROBABLY because the filename contained a newline, 4032PROBABLY because you forgot to chomp() it off. See L<perlfunc/chomp>. 4033 4034=item Unsupported directory function "%s" called 4035 4036(F) Your machine doesn't support opendir() and readdir(). 4037 4038=item Unsupported function %s 4039 4040(F) This machine doesn't implement the indicated function, apparently. 4041At least, Configure doesn't think so. 4042 4043=item Unsupported function fork 4044 4045(F) Your version of executable does not support forking. 4046 4047Note that under some systems, like OS/2, there may be different flavors 4048of Perl executables, some of which may support fork, some not. Try 4049changing the name you call Perl by to C<perl_>, C<perl__>, and so on. 4050 4051=item Unsupported script encoding %s 4052 4053(F) Your program file begins with a Unicode Byte Order Mark (BOM) which 4054declares it to be in a Unicode encoding that Perl cannot read. 4055 4056=item Unsupported socket function "%s" called 4057 4058(F) Your machine doesn't support the Berkeley socket mechanism, or at 4059least that's what Configure thought. 4060 4061=item Unterminated attribute list 4062 4063(F) The lexer found something other than a simple identifier at the 4064start of an attribute, and it wasn't a semicolon or the start of a 4065block. Perhaps you terminated the parameter list of the previous 4066attribute too soon. See L<attributes>. 4067 4068=item Unterminated attribute parameter in attribute list 4069 4070(F) The lexer saw an opening (left) parenthesis character while parsing 4071an attribute list, but the matching closing (right) parenthesis 4072character was not found. You may need to add (or remove) a backslash 4073character to get your parentheses to balance. See L<attributes>. 4074 4075=item Unterminated compressed integer 4076 4077(F) An argument to unpack("w",...) was incompatible with the BER 4078compressed integer format and could not be converted to an integer. 4079See L<perlfunc/pack>. 4080 4081=item Unterminated <> operator 4082 4083(F) The lexer saw a left angle bracket in a place where it was expecting 4084a term, so it's looking for the corresponding right angle bracket, and 4085not finding it. Chances are you left some needed parentheses out 4086earlier in the line, and you really meant a "less than". 4087 4088=item untie attempted while %d inner references still exist 4089 4090(W untie) A copy of the object returned from C<tie> (or C<tied>) was 4091still valid when C<untie> was called. 4092 4093=item Usage: POSIX::%s(%s) 4094 4095(F) You called a POSIX function with incorrect arguments. 4096See L<POSIX/FUNCTIONS> for more information. 4097 4098=item Usage: Win32::%s(%s) 4099 4100(F) You called a Win32 function with incorrect arguments. 4101See L<Win32> for more information. 4102 4103=item Useless (?-%s) - don't use /%s modifier in regex; marked by <-- HERE in m/%s/ 4104 4105(W regexp) You have used an internal modifier such as (?-o) that has no 4106meaning unless removed from the entire regexp: 4107 4108 if ($string =~ /(?-o)$pattern/o) { ... } 4109 4110must be written as 4111 4112 if ($string =~ /$pattern/) { ... } 4113 4114The <-- HERE shows in the regular expression about 4115where the problem was discovered. See L<perlre>. 4116 4117=item Useless (?%s) - use /%s modifier in regex; marked by <-- HERE in m/%s/ 4118 4119(W regexp) You have used an internal modifier such as (?o) that has no 4120meaning unless applied to the entire regexp: 4121 4122 if ($string =~ /(?o)$pattern/) { ... } 4123 4124must be written as 4125 4126 if ($string =~ /$pattern/o) { ... } 4127 4128The <-- HERE shows in the regular expression about 4129where the problem was discovered. See L<perlre>. 4130 4131=item Useless use of %s in void context 4132 4133(W void) You did something without a side effect in a context that does 4134nothing with the return value, such as a statement that doesn't return a 4135value from a block, or the left side of a scalar comma operator. Very 4136often this points not to stupidity on your part, but a failure of Perl 4137to parse your program the way you thought it would. For example, you'd 4138get this if you mixed up your C precedence with Python precedence and 4139said 4140 4141 $one, $two = 1, 2; 4142 4143when you meant to say 4144 4145 ($one, $two) = (1, 2); 4146 4147Another common error is to use ordinary parentheses to construct a list 4148reference when you should be using square or curly brackets, for 4149example, if you say 4150 4151 $array = (1,2); 4152 4153when you should have said 4154 4155 $array = [1,2]; 4156 4157The square brackets explicitly turn a list value into a scalar value, 4158while parentheses do not. So when a parenthesized list is evaluated in 4159a scalar context, the comma is treated like C's comma operator, which 4160throws away the left argument, which is not what you want. See 4161L<perlref> for more on this. 4162 4163This warning will not be issued for numerical constants equal to 0 or 1 4164since they are often used in statements like 4165 4166 1 while sub_with_side_effects() ; 4167 4168String constants that would normally evaluate to 0 or 1 are warned 4169about. 4170 4171=item Useless use of "re" pragma 4172 4173(W) You did C<use re;> without any arguments. That isn't very useful. 4174 4175=item Useless use of sort in scalar context 4176 4177(W void) You used sort in scalar context, as in : 4178 4179 my $x = sort @y; 4180 4181This is not very useful, and perl currently optimizes this away. 4182 4183=item Useless use of %s with no values 4184 4185(W syntax) You used the push() or unshift() function with no arguments 4186apart from the array, like C<push(@x)> or C<unshift(@foo)>. That won't 4187usually have any effect on the array, so is completely useless. It's 4188possible in principle that push(@tied_array) could have some effect 4189if the array is tied to a class which implements a PUSH method. If so, 4190you can write it as C<push(@tied_array,())> to avoid this warning. 4191 4192=item "use" not allowed in expression 4193 4194(F) The "use" keyword is recognized and executed at compile time, and 4195returns no useful value. See L<perlmod>. 4196 4197=item Use of bare << to mean <<"" is deprecated 4198 4199(D deprecated) You are now encouraged to use the explicitly quoted form 4200if you wish to use an empty line as the terminator of the here-document. 4201 4202=item Use of chdir('') or chdir(undef) as chdir() deprecated 4203 4204(D deprecated) chdir() with no arguments is documented to change to 4205$ENV{HOME} or $ENV{LOGDIR}. chdir(undef) and chdir('') share this 4206behavior, but that has been deprecated. In future versions they 4207will simply fail. 4208 4209Be careful to check that what you pass to chdir() is defined and not 4210blank, else you might find yourself in your home directory. 4211 4212=item Use of /c modifier is meaningless in s/// 4213 4214(W regexp) You used the /c modifier in a substitution. The /c 4215modifier is not presently meaningful in substitutions. 4216 4217=item Use of /c modifier is meaningless without /g 4218 4219(W regexp) You used the /c modifier with a regex operand, but didn't 4220use the /g modifier. Currently, /c is meaningful only when /g is 4221used. (This may change in the future.) 4222 4223=item Use of freed value in iteration 4224 4225(F) Perhaps you modified the iterated array within the loop? 4226This error is typically caused by code like the following: 4227 4228 @a = (3,4); 4229 @a = () for (1,2,@a); 4230 4231You are not supposed to modify arrays while they are being iterated over. 4232For speed and efficiency reasons, Perl internally does not do full 4233reference-counting of iterated items, hence deleting such an item in the 4234middle of an iteration causes Perl to see a freed value. 4235 4236=item Use of *glob{FILEHANDLE} is deprecated 4237 4238(D deprecated) You are now encouraged to use the shorter *glob{IO} form 4239to access the filehandle slot within a typeglob. 4240 4241=item Use of /g modifier is meaningless in split 4242 4243(W regexp) You used the /g modifier on the pattern for a C<split> 4244operator. Since C<split> always tries to match the pattern 4245repeatedly, the C</g> has no effect. 4246 4247=item Use of implicit split to @_ is deprecated 4248 4249(D deprecated) It makes a lot of work for the compiler when you clobber 4250a subroutine's argument list, so it's better if you assign the results 4251of a split() explicitly to an array (or list). 4252 4253=item Use of inherited AUTOLOAD for non-method %s() is deprecated 4254 4255(D deprecated) As an (ahem) accidental feature, C<AUTOLOAD> subroutines 4256are looked up as methods (using the C<@ISA> hierarchy) even when the 4257subroutines to be autoloaded were called as plain functions (e.g. 4258C<Foo::bar()>), not as methods (e.g. C<< Foo->bar() >> or C<< 4259$obj->bar() >>). 4260 4261This bug will be rectified in future by using method lookup only for 4262methods' C<AUTOLOAD>s. However, there is a significant base of existing 4263code that may be using the old behavior. So, as an interim step, Perl 4264currently issues an optional warning when non-methods use inherited 4265C<AUTOLOAD>s. 4266 4267The simple rule is: Inheritance will not work when autoloading 4268non-methods. The simple fix for old code is: In any module that used 4269to depend on inheriting C<AUTOLOAD> for non-methods from a base class 4270named C<BaseClass>, execute C<*AUTOLOAD = \&BaseClass::AUTOLOAD> during 4271startup. 4272 4273In code that currently says C<use AutoLoader; @ISA = qw(AutoLoader);> 4274you should remove AutoLoader from @ISA and change C<use AutoLoader;> to 4275C<use AutoLoader 'AUTOLOAD';>. 4276 4277=item Use of %s in printf format not supported 4278 4279(F) You attempted to use a feature of printf that is accessible from 4280only C. This usually means there's a better way to do it in Perl. 4281 4282=item Use of $* is deprecated 4283 4284(D deprecated) This variable magically turned on multi-line pattern 4285matching, both for you and for any luckless subroutine that you happen 4286to call. You should use the new C<//m> and C<//s> modifiers now to do 4287that without the dangerous action-at-a-distance effects of C<$*>. 4288 4289=item Use of $# is deprecated 4290 4291(D deprecated) This was an ill-advised attempt to emulate a poorly 4292defined B<awk> feature. Use an explicit printf() or sprintf() instead. 4293 4294=item Use of %s is deprecated 4295 4296(D deprecated) The construct indicated is no longer recommended for use, 4297generally because there's a better way to do it, and also because the 4298old way has bad side effects. 4299 4300=item Use of -l on filehandle %s 4301 4302(W io) A filehandle represents an opened file, and when you opened the file 4303it already went past any symlink you are presumably trying to look for. 4304The operation returned C<undef>. Use a filename instead. 4305 4306=item Use of "package" with no arguments is deprecated 4307 4308(D deprecated) You used the C<package> keyword without specifying a package 4309name. So no namespace is current at all. Using this can cause many 4310otherwise reasonable constructs to fail in baffling ways. C<use strict;> 4311instead. 4312 4313=item Use of reference "%s" as array index 4314 4315(W misc) You tried to use a reference as an array index; this probably 4316isn't what you mean, because references in numerical context tend 4317to be huge numbers, and so usually indicates programmer error. 4318 4319If you really do mean it, explicitly numify your reference, like so: 4320C<$array[0+$ref]>. This warning is not given for overloaded objects, 4321either, because you can overload the numification and stringification 4322operators and then you assumedly know what you are doing. 4323 4324=item Use of reserved word "%s" is deprecated 4325 4326(D deprecated) The indicated bareword is a reserved word. Future 4327versions of perl may use it as a keyword, so you're better off either 4328explicitly quoting the word in a manner appropriate for its context of 4329use, or using a different name altogether. The warning can be 4330suppressed for subroutine names by either adding a C<&> prefix, or using 4331a package qualifier, e.g. C<&our()>, or C<Foo::our()>. 4332 4333=item Use of tainted arguments in %s is deprecated 4334 4335(W taint, deprecated) You have supplied C<system()> or C<exec()> with multiple 4336arguments and at least one of them is tainted. This used to be allowed 4337but will become a fatal error in a future version of perl. Untaint your 4338arguments. See L<perlsec>. 4339 4340=item Use of uninitialized value%s 4341 4342(W uninitialized) An undefined value was used as if it were already 4343defined. It was interpreted as a "" or a 0, but maybe it was a mistake. 4344To suppress this warning assign a defined value to your variables. 4345 4346To help you figure out what was undefined, perl tells you what operation 4347you used the undefined value in. Note, however, that perl optimizes your 4348program and the operation displayed in the warning may not necessarily 4349appear literally in your program. For example, C<"that $foo"> is 4350usually optimized into C<"that " . $foo>, and the warning will refer to 4351the C<concatenation (.)> operator, even though there is no C<.> in your 4352program. 4353 4354=item Using a hash as a reference is deprecated 4355 4356(D deprecated) You tried to use a hash as a reference, as in 4357C<< %foo->{"bar"} >> or C<< %$ref->{"hello"} >>. Versions of perl <= 5.6.1 4358used to allow this syntax, but shouldn't have. It is now deprecated, and will 4359be removed in a future version. 4360 4361=item Using an array as a reference is deprecated 4362 4363(D deprecated) You tried to use an array as a reference, as in 4364C<< @foo->[23] >> or C<< @$ref->[99] >>. Versions of perl <= 5.6.1 used to 4365allow this syntax, but shouldn't have. It is now deprecated, and will be 4366removed in a future version. 4367 4368=item UTF-16 surrogate %s 4369 4370(W utf8) You tried to generate half of an UTF-16 surrogate by 4371requesting a Unicode character between the code points 0xD800 and 43720xDFFF (inclusive). That range is reserved exclusively for the use of 4373UTF-16 encoding (by having two 16-bit UCS-2 characters); but Perl 4374encodes its characters in UTF-8, so what you got is a very illegal 4375character. If you really know what you are doing you can turn off 4376this warning by C<no warnings 'utf8';>. 4377 4378=item Value of %s can be "0"; test with defined() 4379 4380(W misc) In a conditional expression, you used <HANDLE>, <*> (glob), 4381C<each()>, or C<readdir()> as a boolean value. Each of these constructs 4382can return a value of "0"; that would make the conditional expression 4383false, which is probably not what you intended. When using these 4384constructs in conditional expressions, test their values with the 4385C<defined> operator. 4386 4387=item Value of CLI symbol "%s" too long 4388 4389(W misc) A warning peculiar to VMS. Perl tried to read the value of an 4390%ENV element from a CLI symbol table, and found a resultant string 4391longer than 1024 characters. The return value has been truncated to 43921024 characters. 4393 4394=item Variable "%s" is not imported%s 4395 4396(F) While "use strict" in effect, you referred to a global variable that 4397you apparently thought was imported from another module, because 4398something else of the same name (usually a subroutine) is exported by 4399that module. It usually means you put the wrong funny character on the 4400front of your variable. 4401 4402=item Variable length lookbehind not implemented in regex; marked by <-- HERE in m/%s/ 4403 4404(F) Lookbehind is allowed only for subexpressions whose length is fixed and 4405known at compile time. The <-- HERE shows in the regular expression about 4406where the problem was discovered. See L<perlre>. 4407 4408=item "%s" variable %s masks earlier declaration in same %s 4409 4410(W misc) A "my" or "our" variable has been redeclared in the current 4411scope or statement, effectively eliminating all access to the previous 4412instance. This is almost always a typographical error. Note that the 4413earlier variable will still exist until the end of the scope or until 4414all closure referents to it are destroyed. 4415 4416=item Variable "%s" may be unavailable 4417 4418(W closure) An inner (nested) I<anonymous> subroutine is inside a 4419I<named> subroutine, and outside that is another subroutine; and the 4420anonymous (innermost) subroutine is referencing a lexical variable 4421defined in the outermost subroutine. For example: 4422 4423 sub outermost { my $a; sub middle { sub { $a } } } 4424 4425If the anonymous subroutine is called or referenced (directly or 4426indirectly) from the outermost subroutine, it will share the variable as 4427you would expect. But if the anonymous subroutine is called or 4428referenced when the outermost subroutine is not active, it will see the 4429value of the shared variable as it was before and during the *first* 4430call to the outermost subroutine, which is probably not what you want. 4431 4432In these circumstances, it is usually best to make the middle subroutine 4433anonymous, using the C<sub {}> syntax. Perl has specific support for 4434shared variables in nested anonymous subroutines; a named subroutine in 4435between interferes with this feature. 4436 4437=item Variable syntax 4438 4439(A) You've accidentally run your script through B<csh> instead 4440of Perl. Check the #! line, or manually feed your script into 4441Perl yourself. 4442 4443=item Variable "%s" will not stay shared 4444 4445(W closure) An inner (nested) I<named> subroutine is referencing a 4446lexical variable defined in an outer subroutine. 4447 4448When the inner subroutine is called, it will probably see the value of 4449the outer subroutine's variable as it was before and during the *first* 4450call to the outer subroutine; in this case, after the first call to the 4451outer subroutine is complete, the inner and outer subroutines will no 4452longer share a common value for the variable. In other words, the 4453variable will no longer be shared. 4454 4455Furthermore, if the outer subroutine is anonymous and references a 4456lexical variable outside itself, then the outer and inner subroutines 4457will I<never> share the given variable. 4458 4459This problem can usually be solved by making the inner subroutine 4460anonymous, using the C<sub {}> syntax. When inner anonymous subs that 4461reference variables in outer subroutines are called or referenced, they 4462are automatically rebound to the current values of such variables. 4463 4464=item Version number must be a constant number 4465 4466(P) The attempt to translate a C<use Module n.n LIST> statement into 4467its equivalent C<BEGIN> block found an internal inconsistency with 4468the version number. 4469 4470=item Warning: something's wrong 4471 4472(W) You passed warn() an empty string (the equivalent of C<warn "">) or 4473you called it with no args and C<$_> was empty. 4474 4475=item Warning: unable to close filehandle %s properly 4476 4477(S) The implicit close() done by an open() got an error indication on 4478the close(). This usually indicates your file system ran out of disk 4479space. 4480 4481=item Warning: Use of "%s" without parentheses is ambiguous 4482 4483(S ambiguous) You wrote a unary operator followed by something that 4484looks like a binary operator that could also have been interpreted as a 4485term or unary operator. For instance, if you know that the rand 4486function has a default argument of 1.0, and you write 4487 4488 rand + 5; 4489 4490you may THINK you wrote the same thing as 4491 4492 rand() + 5; 4493 4494but in actual fact, you got 4495 4496 rand(+5); 4497 4498So put in parentheses to say what you really mean. 4499 4500=item Wide character in %s 4501 4502(W utf8) Perl met a wide character (>255) when it wasn't expecting 4503one. This warning is by default on for I/O (like print). The easiest 4504way to quiet this warning is simply to add the C<:utf8> layer to the 4505output, e.g. C<binmode STDOUT, ':utf8'>. Another way to turn off the 4506warning is to add C<no warnings 'utf8';> but that is often closer to 4507cheating. In general, you are supposed to explicitly mark the 4508filehandle with an encoding, see L<open> and L<perlfunc/binmode>. 4509 4510=item Within []-length '%c' not allowed 4511 4512(F) The count in the (un)pack template may be replaced by C<[TEMPLATE]> only if 4513C<TEMPLATE> always matches the same amount of packed bytes that can be 4514determined from the template alone. This is not possible if it contains an 4515of the codes @, /, U, u, w or a *-length. Redesign the template. 4516 4517=item write() on closed filehandle %s 4518 4519(W closed) The filehandle you're writing to got itself closed sometime 4520before now. Check your control flow. 4521 4522=item %s "\x%s" does not map to Unicode 4523 4524When reading in different encodings Perl tries to map everything 4525into Unicode characters. The bytes you read in are not legal in 4526this encoding, for example 4527 4528 utf8 "\xE4" does not map to Unicode 4529 4530if you try to read in the a-diaereses Latin-1 as UTF-8. 4531 4532=item 'X' outside of string 4533 4534(F) You had a (un)pack template that specified a relative position before 4535the beginning of the string being (un)packed. See L<perlfunc/pack>. 4536 4537=item 'x' outside of string in unpack 4538 4539(F) You had a pack template that specified a relative position after 4540the end of the string being unpacked. See L<perlfunc/pack>. 4541 4542=item Xsub "%s" called in sort 4543 4544(F) The use of an external subroutine as a sort comparison is not yet 4545supported. 4546 4547=item Xsub called in sort 4548 4549(F) The use of an external subroutine as a sort comparison is not yet 4550supported. 4551 4552=item YOU HAVEN'T DISABLED SET-ID SCRIPTS IN THE KERNEL YET! 4553 4554(F) And you probably never will, because you probably don't have the 4555sources to your kernel, and your vendor probably doesn't give a rip 4556about what you want. Your best bet is to put a setuid C wrapper around 4557your script. 4558 4559=item You need to quote "%s" 4560 4561(W syntax) You assigned a bareword as a signal handler name. 4562Unfortunately, you already have a subroutine of that name declared, 4563which means that Perl 5 will try to call the subroutine when the 4564assignment is executed, which is probably not what you want. (If it IS 4565what you want, put an & in front.) 4566 4567=item Your random numbers are not that random 4568 4569(F) When trying to initialise the random seed for hashes, Perl could 4570not get any randomness out of your system. This usually indicates 4571Something Very Wrong. 4572 4573=back 4574 4575=cut 4576