sub read
{
@_ == 3 or croak '$shm->read(POS, SIZE)';
my($self, $pos, $size) = @_;
my $buf = '';
if (defined $self->addr) {
memread($self->addr, $buf, $pos, $size) or return undef;
}
else {
shmread($self->id, $buf, $pos, $size) or return undef;
}
$buf;
}
sub write
{
@_ == 4 or croak '$shm->write(STRING, POS, SIZE)';
my($self, $str, $pos, $size) = @_;
if (defined $self->addr) {
return memwrite($self->addr, $str, $pos, $size);
}
else {
return shmwrite($self->id, $str, $pos, $size);
}
}
####
read ( POS, SIZE )
Read SIZE bytes from the shared memory segment at POS . Returns the string read, or undef if there was an error. The return value becomes tainted. See shmread.
write ( STRING, POS, SIZE )
Write SIZE bytes to the shared memory segment at POS . Returns true if successful, or false if there is an error. See shmwrite.
####
$shm->write(pack("S", 4711), 2, 2);
####
S An unsigned short value.