to check the return value of your socket() call? See
L<perlfunc/accept>.
+=item Aliasing via reference is experimental
+
+(S experimental::refaliasing) This warning is emitted if you use
+a reference constructor on the left-hand side of an assignment to
+alias one variable to another. Simply suppress the warning if you
+want to use the feature, but know that in doing so you are taking
+the risk of using an experimental feature which may change or be
+removed in a future Perl version:
+
+ no warnings "experimental::refaliasing";
+ use feature "refaliasing";
+ \$x = \$y;
+
=item Allocation too large: %x
(X) You can't allocate more than 64K on an MS-DOS machine.
(X) A general assertion failed. The file in question must be examined.
+=item Assigned value is not a reference
+
+(F) You tried to assign something that was not a reference to an lvalue
+reference (e.g., C<\$x = $y>). If you meant to make $x an alias to $y, use
+C<\$x = \$y>.
+
+=item Assigned value is not %s reference
+
+(F) You tried to assign a reference to a reference constructor, but the
+two references were not of the same type. You cannot alias a scalar to
+an array, or an array to a hash; the two types must match.
+
+ \$x = \@y; # error
+ \@x = \%y; # error
+ $y = [];
+ \$x = $y; # error; did you mean \$y?
+
=item Assigning non-zero to $[ is no longer possible
(F) When the "array_base" feature is disabled (e.g., under C<use v5.16;>)
(F) You passed an invalid number (like an infinity or not-a-number) to C<chr>.
-=item Cannot compress %f
+=item Cannot compress %f in pack
-(F) You tried converting an infinity or not-a-number to an
-unsigned character, which makes no sense.
+(F) You tried compressing an infinity or not-a-number as an unsigned
+integer with BER, which makes no sense.
=item Cannot compress integer in pack
-(F) An argument to pack("w",...) was too large to compress. The BER
-compressed integer format can only be used with positive integers, and you
-attempted to compress Infinity or a very large number (> 1e308).
+(F) An argument to pack("w",...) was too large to compress.
+The BER compressed integer format can only be used with positive
+integers, and you attempted to compress a very large number (> 1e308).
See L<perlfunc/pack>.
=item Cannot compress negative numbers in pack
=item Cannot pack %f with '%c'
-(F) You tried converting an infinity or not-a-number to a character,
+(F) You tried converting an infinity or not-a-number to an integer,
which makes no sense.
=item Cannot printf %f with '%c'
(F) Subroutines meant to be used in lvalue context should be declared as
such. See L<perlsub/"Lvalue subroutines">.
+=item Can't modify reference to %s in %s assignment
+
+(F) Only a limited number of constructs can be used as the argument to a
+reference constructor on the left-hand side of an assignment, and what
+you used was not one of them. See L<perlref/Assigning to References>.
+
+=item Can't modify reference to localized parenthesized array in list
+assignment
+
+(F) Assigning to C<\local(@array)> or C<\(local @array)> is not supported, as
+it is not clear exactly what it should do. If you meant to make @array
+refer to some other array, use C<\@array = \@other_array>. If you want to
+make the elements of @array aliases of the scalars referenced on the
+right-hand side, use C<\(@array) = @scalar_refs>.
+
+=item Can't modify reference to parenthesized hash in list assignment
+
+(F) Assigning to C<\(%hash)> is not supported. If you meant to make %hash
+refer to some other hash, use C<\%hash = \%other_hash>. If you want to
+make the elements of %hash into aliases of the scalars referenced on the
+right-hand side, use a hash slice: C<\@hash{@keys} = @those_scalar_refs>.
+
=item Can't msgrcv to read-only var
(F) The target of a msgrcv must be modifiable to be used as a receive
(D deprecated, regexp) The \C character class is deprecated, and will
become a compile-time error in a future release of perl (tentatively
-v5.24). This construct allows you to match a single byte of what makes up
-a multi-byte single UTF8 character, and breaks encapsulation. It is
-currently also very buggy. If you really need to process the individual
+v5.24). This construct allows you to match a single byte of what makes
+up a multi-byte single UTF8 character, and breaks encapsulation. It is
+currently also very buggy. If you really need to process the individual
bytes, you probably want to convert your string to one where each
underlying byte is stored as a character, with utf8::encode().
have some other C<(?...)> construct inside your character class. See
L<perlrecharclass/Extended Bracketed Character Classes>.
+=item Experimental aliasing via reference not enabled
+
+(F) To do aliasing via references, you must first enable the feature:
+
+ no warnings "experimental::refaliasing";
+ use feature "refaliasing";
+ \$x = \$y;
+
=item Experimental subroutine signatures not enabled
(F) To use subroutine signatures, you must first enable them:
(F) The parser has given up trying to parse the program after 10 errors.
Further error messages would likely be uninformative.
+=item Having more than one /%c regexp modifier is deprecated
+
+(D deprecated, regexp) You used the indicated regular expression pattern
+modifier at least twice in a string of modifiers. It is deprecated to
+do this with this particular modifier, to allow future extensions to the
+Perl language.
+
=item Hexadecimal float: exponent overflow
(W overflow) The hexadecimal floating point has a larger exponent
(F) Lexically scoped subroutines are not yet implemented. Don't try
that yet.
+=item "my" subroutine %s can't be in a package
+
+(F) Lexically scoped subroutines aren't in a package, so it doesn't make
+sense to try to declare one with a package qualifier on the front.
+
=item "my %s" used in sort comparison
(W syntax) The package variables $a and $b are used for sort comparisons.
=item panic: pad_free po
-(P) An invalid scratch pad offset was detected internally.
+(P) A zero scratch pad offset was detected internally. An attempt was
+made to free a target that had not been allocated to begin with.
=item panic: pad_reset curpad, %p!=%p
=item panic: pad_sv po
-(P) An invalid scratch pad offset was detected internally.
+(P) A zero scratch pad offset was detected internally. Most likely
+an operator needed a target but that target had not been allocated
+for whatever reason.
=item panic: pad_swipe curpad, %p!=%p
=item Redundant argument in %s
(W redundant) You called a function with more arguments than other
-arguments you supplied indicated would be needed. Currently only
+arguments you supplied indicated would be needed. Currently only
emitted when a printf-type format required fewer arguments than were
supplied, but might be used in the future for e.g. L<perlfunc/pack>.
instead, which does return. To suppress this warning, put the exec() in
a block by itself.
+=item "state" subroutine %s can't be in a package
+
+(F) Lexically scoped subroutines aren't in a package, so it doesn't make
+sense to try to declare one with a package qualifier on the front.
+
=item "state %s" used in sort comparison
(W syntax) The package variables $a and $b are used for sort comparisons.
The S<<-- HERE> shows whereabouts in the regular expression the problem
was discovered. See L<perlre>.
-=item Switch (?(condition)... not terminated in regex; marked by
-S<<-- HERE> in m/%s/
-
-(F) You ommitted to close a (?(condition)...) block somewhere in the
-pattern. Add a closing parenthesis in the appropriate position. See
-L<perlre>.
-
=item Switch condition not recognized in regex; marked by S<<-- HERE> in
m/%s/
The <-- HERE shows whereabouts in the regular expression the problem was
discovered. See L<perlre>.
+=item Switch (?(condition)... not terminated in regex; marked by
+S<<-- HERE> in m/%s/
+
+(F) You omitted to close a (?(condition)...) block somewhere
+in the pattern. Add a closing parenthesis in the appropriate
+position. See L<perlre>.
+
=item switching effective %s is not implemented
(F) While under the C<use filetest> pragma, we cannot switch the real
marked by <-- HERE in m/%s/
(D deprecated, regexp) You used a literal C<"{"> character in a regular
-expression pattern. You should change to use C<"\{"> instead, because a
+expression pattern. You should change to use C<"\{"> instead, because a
future version of Perl (tentatively v5.26) will consider this to be a
syntax error. If the pattern delimiters are also braces, any matching
right brace (C<"}">) should also be escaped to avoid confusing the parser,