Skip to main content

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?

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?

Engineering team says this is fixed in 5.22.0. Please download latest from http://www.rocketsoftware.com/ported-tools