+Bugs
+ perl_run() can longjmp out
+ fix small memory leaks on compile-time failures
+
Unicode support
finish byte <-> utf8 and localencoding <-> utf8 conversions
make "$bytestr$charstr" do the right conversion
work out DLL versioning
Miscellaneous
- magic_setisa should be made to update %FIELDS [???]
add new modules (Archive::Tar, Compress::Zlib, CPAN::FTP?)
replace pod2html with new PodtoHtml? (requires other modules from CPAN)
automate testing with large parts of CPAN
=head2 Slices
-A common way access an array or a hash is one scalar element at a time.
-You can also subscript a list to get a single element from it.
+A common way to access an array or a hash is one scalar element at a
+time. You can also subscript a list to get a single element from it.
$whoami = $ENV{"USER"}; # one element from the hash
$parent = $ISA[0]; # one element from the array
$dir = (getpwnam("daemon"))[7]; # likewise, but with list
A slice accesses several elements of a list, an array, or a hash
-simultaneously using a list of subscripts. It's a more convenient
-that writing out the individual elements as a list of separate
+simultaneously using a list of subscripts. It's more convenient
+than writing out the individual elements as a list of separate
scalar values.
($him, $her) = @folks[0,-1]; # array slice
($folks[0], $folks[-1]) = ($folks[0], $folks[-1]);
Since changing a slice changes the original array or hash that it's
-slicing, a C<foreach> construct will alter through some--or even
-all--of the values of the array or hash.
+slicing, a C<foreach> construct will alter some--or even all--of the
+values of the array or hash.
foreach (@array[ 4 .. 10 ]) { s/peter/paul/ }
s/(\w+)/\u\L$1/g; # "titlecase" words
}
-You couldn't just loop through C<values %hash> to do this because
-that function produces a new list which is a copy of the values,
-so changing them doesn't change the original.
-
A slice of an empty list is still an empty list. Thus:
@a = ()[1,0]; # @a has no elements
@b = (@a)[0,1]; # @b has no elements
- @b = (1,undef)[1,0,1]; # @b has three elements
+ @c = (0,1)[2,3]; # @c has no elements
+
+But:
+
+ @a = (1)[1,0]; # @a has two elements
+ @b = (1,undef)[1,0,2]; # @b has three elements
This makes it easy to write loops that terminate when a null list
is returned:
logical may depend on the platform in use. In MacPerl, C<\n> always
means C<\015>. In DOSish perls, C<\n> usually means C<\012>, but
when accessing a file in "text" mode, STDIO translates it to (or
-from) C<\015\012>, depending on whether your reading or writing.
+from) C<\015\012>, depending on whether you're reading or writing.
Unix does the same thing on ttys in canonical mode. C<\015\012>
is commonly referred to as CRLF.
=over 4
+=item v1.46, 12 February 2000
+
+Updates for VOS and MPE/iX. (Peter Prymmer) Other small changes.
+
=item v1.45, 20 December 1999
Small changes from 5.005_63 distribution, more changes to EBCDIC info.
=head1 VERSION
-Version 1.45, last modified 20 December 1999
+Version 1.46, last modified 12 February 2000