This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
cautionary note about "no VERSION"
[perl5.git] / README.bs2000
index 1dad5ae..a7746c6 100644 (file)
@@ -1,5 +1,5 @@
 This document is written in pod format hence there are punctuation
-characters in in odd places.  Do not worry, you've apparently got the
+characters in odd places.  Do not worry, you've apparently got the
 ASCII->EBCDIC translation worked out correctly.  You can read more
 about pod in pod/perlpod.pod or the short summary in the INSTALL file.
 
@@ -151,7 +151,7 @@ C</START-PROG FROM-FILE=*MODULE(PERL,PERL),PROG-MODE=*ANY,RUN-MODE=*ADV>
 First you get the BS2000 commandline prompt ('*').  Here you may enter
 your parameters, e.g. C<-e 'print "Hello World!\\n";'> (note the
 double backslash!) or C<-w> and the name of your Perl script.
-Filenames starting with C</> are searched in in the Posix filesystem,
+Filenames starting with C</> are searched in the Posix filesystem,
 others are searched in the BS2000 filesystem.  You may even use
 wildcards if you put a C<%> in front of your filename (e.g. C<-w
 checkfiles.pl %*.c>).  Read your C/C++ manual for additional
@@ -174,6 +174,40 @@ Perl code:
 Although one would expect the quantities $y and $z to be the same and equal
 to 100000 they will differ and instead will be 0 and 100000 respectively.
 
+=head2 Using PerlIO and different encodings on ASCII and EBCDIC partitions
+
+Since version 5.8 Perl uses the new PerlIO on BS2000.  This enables
+you using different encodings per IO channel.  For example you may use
+
+    use Encode;
+    open($f, ">:encoding(ascii)", "test.ascii");
+    print $f "Hello World!\n";
+    open($f, ">:encoding(posix-bc)", "test.ebcdic");
+    print $f "Hello World!\n";
+    open($f, ">:encoding(latin1)", "test.latin1");
+    print $f "Hello World!\n";
+    open($f, ">:encoding(utf8)", "test.utf8");
+    print $f "Hello World!\n";
+
+to get two files containing "Hello World!\n" in ASCII, EBCDIC, ISO
+Latin-1 (in this example identical to ASCII) respective UTF-EBCDIC (in
+this example identical to normal EBCDIC).  See the documentation of
+Encode::PerlIO for details.
+
+As the PerlIO layer uses raw IO internally, all this totally ignores
+the type of your filesystem (ASCII or EBCDIC) and the IO_CONVERSION
+environment variable.  If you want to get the old behavior, that the
+BS2000 IO functions determine conversion depending on the filesystem
+PerlIO still is your friend.  You use IO_CONVERSION as usual and tell
+Perl, that it should use the native IO layer:
+
+    export IO_CONVERSION=YES
+    export PERLIO=stdio
+
+Now your IO would be ASCII on ASCII partitions and EBCDIC on EBCDIC
+partitions.  See the documentation of PerlIO (without C<Encode::>!)
+for further posibilities.
+
 =head1 AUTHORS
 
 Thomas Dorner
@@ -184,13 +218,18 @@ L<INSTALL>, L<perlport>.
 
 =head2 Mailing list
 
-The Perl Institute (http://www.perl.org/) maintains a perl-mvs mailing
-list of interest to all folks building and/or using perl on EBCDIC
-platforms.  To subscribe, send a message of:
+If you are interested in the VM/ESA, z/OS (formerly known as OS/390)
+and POSIX-BC (BS2000) ports of Perl then see the perl-mvs mailing list.
+To subscribe, send an empty message to perl-mvs-subscribe@perl.org.
+
+See also:
+
+    http://lists.perl.org/showlist.cgi?name=perl-mvs
 
-    subscribe perl-mvs
+There are web archives of the mailing list at:
 
-to majordomo@perl.org.
+    http://www.xray.mpe.mpg.de/mailing-lists/perl-mvs/
+    http://archive.develooper.com/perl-mvs@perl.org/
 
 =head1 HISTORY