diff options
Diffstat (limited to 'pod/perldiag.pod')
-rw-r--r-- | pod/perldiag.pod | 56 |
1 files changed, 27 insertions, 29 deletions
diff --git a/pod/perldiag.pod b/pod/perldiag.pod index de8956be94..c754333040 100644 --- a/pod/perldiag.pod +++ b/pod/perldiag.pod @@ -72,7 +72,7 @@ Alternatively, you can import the subroutine (or pretend that it's imported with the C<use subs> pragma). To silently interpret it as the Perl operator, use the C<CORE::> prefix -on the operator (e.g. C<CORE::log($x)>) or by declaring the subroutine +on the operator (e.g. C<CORE::log($x)>) or declare the subroutine to be an object method (see L<perlsub/"Subroutine Attributes"> or L<attributes>). @@ -112,8 +112,8 @@ which 'splits' output into two streams, such as =item Applying %s to %s will act on scalar(%s) -(W misc) The pattern match (//), substitution (s///), and -transliteration (tr///) operators work on scalar values. If you apply +(W misc) The pattern match (C<//>), substitution (C<s///>), and +transliteration (C<tr///>) operators work on scalar values. If you apply one of them to an array or a hash, it will convert the array or hash to a scalar value -- the length of an array, or the population info of a hash -- and then work on that scalar value. This is probably not what @@ -184,7 +184,7 @@ know which context to supply to the right side. =item Negative offset to vec in lvalue context -(F) When vec is called in an lvalue context, the second argument must be +(F) When C<vec> is called in an lvalue context, the second argument must be greater than or equal to zero. =item Attempt to bless into a reference @@ -270,7 +270,7 @@ S<sizeof(struct shmid_ds *)>. =item Bad evalled substitution pattern -(F) You've used the /e switch to evaluate the replacement for a +(F) You've used the C</e> switch to evaluate the replacement for a substitution, but perl found a syntax error in the code to evaluate, most likely an unexpected right brace '}'. @@ -1106,16 +1106,6 @@ and so on) and not for Unicode characters, so Perl behaved as if you meant If you actually want to pack Unicode codepoints, use the C<"U"> format instead. -=item chmod() mode argument is missing initial 0 - -(W chmod) A novice will sometimes say - - chmod 777, $filename - -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. - =item close() on unopened filehandle %s (W unopened) You tried to close a filehandle that was never opened. @@ -1247,6 +1237,12 @@ it compiled correctly and ran its initialization code correctly. It's traditional to end such a file with a "1;", though any true value would do. See L<perlfunc/require>. +=item (Did you mean 0%d instead?) + +(W octmode) The mode argument to chmod, mkdir, and umask is usually +given in octal (octal constants start with a 0, as in C). Did you really +mean to use a non-octal number? + =item (Did you mean &%s instead?) (W) You probably referred to an imported subroutine &FOO as $FOO or some @@ -2207,6 +2203,12 @@ not know about the field name. The field names are looked up in the not recognized. Say C<kill -l> in your shell to see the valid signal names on your system. +=item Non-octal literal mode (%d) specified + +(W octmode) The mode argument to chmod, mkdir, and umask is usually +given in octal (octal constants start with a 0, as in C). Did you really +mean to use a non-octal number? + =item Not a CODE reference (F) Perl was trying to evaluate a reference to a code value (that is, a @@ -3497,11 +3499,6 @@ certain type. Arrays must be @NAME or C<@{EXPR}>. Hashes must be %NAME or C<%{EXPR}>. No implicit dereferencing is allowed--use the {EXPR} forms as an explicit dereference. See L<perlref>. -=item umask: argument is missing initial 0 - -(W umask) A umask of 222 is incorrect. It should be 0222, because octal -literals always start with 0 in Perl, as in C. - =item umask not implemented (F) Your machine doesn't implement the umask function and you tried to @@ -3930,16 +3927,17 @@ program. =item Using a hash as a reference is deprecated -(D deprecated) You tried to use a hash as a reference, as in C<%foo->{"bar"}> -or C<%$ref->{"hello"}. Versions of perl <= 5.6.1 used to allow this syntax, -but shouldn't have. It is now deprecated, and will be removed in a future -version. +(D deprecated) You tried to use a hash as a reference, as in +C<< %foo->{"bar"} >> or C<< %$ref->{"hello"} >>. Versions of perl <= 5.6.1 +used to allow this syntax, but shouldn't have. It is now deprecated, and will +be removed in a future version. =item Using an array as a reference is deprecated -(D deprecated) You tried to use an array as a reference, as in C<@foo->[23]> -or C<@$ref->[99]>. Versions of perl <= 5.6.1 used to allow this syntax, but -shouldn't have. It is now deprecated, and will be removed in a future version. +(D deprecated) You tried to use an array as a reference, as in +C<< @foo->[23] >> or C<< @$ref->[99] >>. Versions of perl <= 5.6.1 used to +allow this syntax, but shouldn't have. It is now deprecated, and will be +removed in a future version. =item Value of %s can be "0"; test with defined() @@ -4104,8 +4102,8 @@ Use a filename instead. (F) And you probably never will, because you probably don't have the sources to your kernel, and your vendor probably doesn't give a rip -about what you want. Your best bet is to use the wrapsuid script in the -eg directory to put a setuid C wrapper around your script. +about what you want. Your best bet is to put a setuid C wrapper around +your script. =item You need to quote "%s" |