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