my @versions = qw( 100 105 110 115 120 125 );
sub compare{
my ($a, $b) = @_;
print "Between $a and $b:\n";
my $code = '-MPowerbuilder=":all" -e "print Sys->Dump"';
`pbperl${a} $code > tmp${a}.txt`;
`pbperl${b} $code > tmp${b}.txt`;
print join $/, map{s/^[<]/-/; s/^[>]/+/;$_} grep {/^[<>]/ && !/^[<>] CLASS/} split /\n/, `diff tmp${a}.txt tmp${b}.txt`;
unlink "tmp${a}.txt";
unlink "tmp${b}.txt";
print "\n\n";
return 0; #don't mind
}
$a = shift @versions;
while($b = shift @versions){
compare( $a, $b );
$a = $b;
}
Output :
Between 100 and 105: + public function byte(any v) return byte + public function getbyte(blob b,unsignedlong o,ref byte v) return integer + public function setbyte(ref blob b,unsignedlong o,byte v) return integer Between 105 and 110: - public function blob(string s) return blob + public function blob(any stringorbyetarray) return blob + public function getbytearray(blob input) return any + public function getremote(string l,ref string t,long c,boolean b) return integer + public function getremote(string l,ref string t,long c,long w,boolean b) return integer + public function getremote(string l,ref string t,string a,string p,boolean b) return integer + public function lefttrim(readonly string s,boolean removealltypespaces) return string + public function righttrim(readonly string s,boolean removealltypespaces) return string + public function setremote(string l,string r,long c,boolean b) return integer + public function setremote(string l,string r,long c,long w,boolean b) return integer + public function setremote(string l,string r,string a,string t,boolean b) return integer + public function starthotlink(string l,string a,string t,boolean b) return integer + public function trim(readonly string s,boolean removealltypespaces) return string Between 110 and 115: + public function pbgetmenustring(long h,integer i,ref string t,integer n) return long Between 115 and 120: + public function setpointer(string s) return pointer! Between 120 and 125: