появилась возможность проверить на солярисе версию 5.8.5.
оказалось, дело в версии перла. в 5.0 pack() неверно работает для пустой строки. но там, где эта прога будет работать, перл обновить непросто
NeoNox сама hexdump неоднократно проверена.
в таком варианте:
#!/usr/bin/perl -w
use strict;
my $v = pack(\'Z*\',\'\');
print \'length=\'.length($v).\' data=\'.hexdump($v);
sub hexdump {
my $data = shift;
my $res;
for(my $i=$[; $i
print \'i=\'.$i.\' length=\'.length($data)."\\n";
$res .= sprintf(\'%02x \',ord(substr($data,$i,1)));
print "res=$res\\n";
}
return $res;
}
новый перл выдает:
i=0 length=1
res=00
length=1 data=00
а старый:
Use of uninitialized value at t3.pl line 4.
length=0 data=