---
name: "XBase::Base"
section: "3pm"
platform: "linux"
package: "libdbd-xbase-perl"
version: "1:1.08-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/XBase::Base"
---

# XBase::Base(3pm)

Base input output module for XBase suite

## NAME

XBase::Base - Base input output module for XBase suite

## SYNOPSIS

Used indirectly, via XBase or XBase::Memo.

## DESCRIPTION

This module provides catch-all I/O methods for other XBase classes, should be used by people creating additional XBase classes/methods. There is nothing interesting in here for users of the **XBase**(3) module. Methods in XBase::Base return nothing (undef) on error and the error message can be retrieved using the **errstr** method.

Methods are:

- new

  Constructor. Creates the object and if the file name is specified, opens the file.

- open

  Opens the file and using method read\_header reads the header and sets the object's data structure. The read\_header should be defined in the derived class, there is no default.

- close

  Closes the file, doesn't destroy the object.

- drop

  Unlinks the file.

- create\_file

  Creates file of given name. Second (optional) parameter is the permission specification for the file.

The reading/writing methods assume that the file has got header of length header\_len bytes (possibly 0) and then records of length record\_len. These two values should be set by the read\_header method.

- seek\_to, seek\_to\_record

  Seeks to absolute position or to the start of the record.

- read\_record, read\_from

  Reads data from specified position (offset) or from the given record. The second parameter (optional for **read\_record**) is the length to read. It can be negative, and at that case the read will not complain if the file is shorter than requested.

- write\_to, write\_record

  Writes data to the absolute position or to specified record position. The data is not padded to record\_len, just written out.

General locking methods are **locksh**, **lockex** and **unlock**, they call **\_locksh**, **\_lockex** and **\_unlock** which can be redefined to allow any way for locking (not only the default flock). The user is responsible for calling the lock if he needs it.

No more description -- check the source code if you need to know more.

## VERSION

1\.02

## AVAILABLE FROM

http://www.adelton.com/perl/DBD-XBase/

## AUTHOR

(c) 1997--2011 Jan Pazdziora.

## SEE ALSO

[**perl**(1)](/perl/1.md), **XBase**(3)
