Implemented perl 5.16.2 as part of z/OS 2.2 migration. A critical perl user was not able to run existing code with 5.16.2 but it works with 5.8.7. Here’s our test case:
5.8.7:
#!/usr/lpp/perl
#####!/usr/bin/perl
open( RESPONSE_BASE, “<:encoding(ISO8859-1)”, “/u/snomre/weekly_tdi/kmbtstorig.txt” );
open( RESPONSE_MOD, “>:encoding(ISO8859-1)”, “/tmp/kmbtst.txt” );
while (<RESPONSE_BASE>) {
chomp;
print( “before substitution $_\n” );
s/( ¬# \s*)HELLO=.*/$1HELLO=Melissa/;
print( RESPONSE_MOD “$_\n” );
}
close(RESPONSE_BASE);
close(RESPONSE_MOD);
5.16.2
#!/usr/bin/perl
open( RESPONSE_BASE, “<:encoding(ISO8859-1)”, “/u/snomre/weekly_tdi/kmbtstorig.txt” );
open( RESPONSE_MOD, “>:encoding(ISO8859-1)”, “/tmp/kmbtst.txt” );
while (<RESPONSE_BASE>) {
chomp;
print( “before substitution $_\n” );
s/( ¬# \s*)HELLO=.*/$1HELLO=Melissa/;
print( RESPONSE_MOD “$_\n” );
}
close(RESPONSE_BASE);
close(RESPONSE_MOD);
Expected response in 5.8.7:
before substitution # HELLO=abcd
Incorrect response from 5.16.2:
before substitution # ßLLO=aÆ
Code point 0x00FF is not Unicode, may not be portable at ./melissa.test.v5162.pl line 11, <RESPONSE_BASE> line 1.
Still trying to get 5.22.0 running so don’t know if it fixed this problem.
Ideas?