-
Notifications
You must be signed in to change notification settings - Fork 1
/
Changes
668 lines (436 loc) · 20.3 KB
/
Changes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
Revision history for Perl extension XBase and DBD::XBase.
1.08 Fri Jan 13 21:20:15 CET 2017
Add support for dBASE IV memo type B.
1.07 Tue May 3 19:45:23 CEST 2016
Resolving the xbase_lines regression of 1.06.
1.06 Sun Mar 6 20:48:11 CET 2016
Add support for W column type (byte array by Visual FoxPro).
Fixed overload arg warning.
Restore the table_info functionality.
Fix for type B little endian issue, reported by Andres Thomas.
1.05 Wed Apr 24 19:37:09 CEST 2013
Fix for prepare_select_eq and empty MDX indexes, patch by Julian
Bridle.
1.04 Wed Apr 17 19:47:21 CEST 2013
Fix for handling MDX indexes, patch by Julian Bridle.
1.03 Sun Mar 6 07:32:21 CET 2011
Fixing output of tests when DBI is not available.
1.02 Thu Mar 3 20:40:54 CET 2011
Added the URL to the AVAILABLE FROM sections.
1.01 Wed Feb 9 21:22:07 CET 2011
Updated the Changes file.
1.00 Wed Feb 9 21:19:35 CET 2011
Changed the location of the distribution to
http://www.adelton.com/perl/DBD-XBase/
Changed author's email address.
Require perl 5.10 and use O_BINARY from Fcntl.
Updated the clean target to make distclean clean.
Updated URL of Erik's documentation.
0.241 Thu Nov 20 21:12:56 MET 2003
XBase: codepage option to XBase->create added, suggested by
Chris Greenhill.
0.240 Mon Aug 25 15:03:57 MEST 2003
XBase: delete_record/undelete_record now corrctly returns
false when the delete fails, problem reported by Boris Kocak.
0.234 Mon Jul 7 20:41:14 CEST 2003
Added test to Makefile.PL and note to INSTALL about case
insensitive clash with Xbase.pm, suggested by Michael Higgins
and Jan from AS.
Added documentation / comments about datetime, suggested
by John Freed.
Xbase: Added the recompute_lastrecno parameter, suggested by
Kevin J. Rice. Added EOF to create, suggested by Ilya Sandler.
0.232 Thu Apr 3 17:47:39 CEST 2003
XBase::SQL: Fieldname can contain the table name (silently
dropped), suggested by Michael Semich, and table name now
matches [^\(\s]+ to allow paren immediately following it,
problem reported by belg4mit.
0.231 Thu Oct 31 17:48:19 MET 2002
t/9_dbd_create.t: patched a test failure on Windows platform,
path by Yves Orton.
0.230 Wed Oct 9 11:05:28 MET DST 2002
DBD::XBase: added docs about xbase_ignorememo.
DBD::XBase: fixed dropping table so that the driver forgets
the table, patch by Mike P. Mikhailov.
0.220 Mon Sep 2 12:26:34 MET DST 2002
XBase::Index::ntx: type option has higher priority than dbf.
XBase::read_header: fail if the header is not valid.
XBase::Memo::read_header: allow length 512 and 24.
XBase::FAQ: reformatted, slightly.
XBase, XBase::SQL: added support for type money (Y).
Code and indentation cleanup.
0.210 Fri Dec 7 12:56:37 MET 2001
README and INSTALL made uptodate.
Fixed attributes (TYPE) handling, problem reported by Jacek
Ciolek.
0.200 Sun Aug 19 13:48:27 MET DST 2001
Source code reformated to unified indentation.
0.190 Sat Aug 18 18:02:04 MEST 2001
XBase::SDBM: documentation added.
DBD::XBase: order by with more fields supported.
0.177 Thu May 10 17:19:07 MET DST 2001
XBase: retry with nolongchars if the char lengths do not match
the record length.
Memo field not written when empty, suggested by Sascha Knific.
XBase::Base::open: now allows option 'fh' to point to
IO::Scalar or generally any filehandle to be passed in.
0.176 Thu Feb 8 13:19:16 MET 2001
DBD::XBase: select * with order by was failing, reported by
Filipe Luis Geschaeft
0.173 Tue Feb 6 11:18:46 MET 2001
XBase: year encoding not correct in dbf header, reported
by Helmut Jarausch.
0.172 Tue Feb 6 10:22:11 MET 2001
XBase::Memo: creating of fpt supported; bug pointed out by
Massimo Matteuzzi.
0.170 Fri Jan 26 18:35:01 MET 2001
XBase::idx: create support and better reading support.
XBase: password protection explored
0.165 Mon Jan 22 19:33:01 MET 2001
XBase: better sanity checks in dump_records.
XBase::SQL: added support for not in SQL command.
0.162 Sun Jan 21 17:53:05 MET 2001
XBase::IndexCursor: error by one in last_fetched.
XBase: Y2K problem fixed, patch by Phillip Millman.
XBase::Index, XBase::SDBM: added support for SDBM index
files.
XBase, XBase::cdx: added support for type specification of cdx
files even when called via prepare_select_with_index, to
allow use even if we don't support expressions.
XBase::SQL: multiplication support added, patch by Thoren
Johne and Stuart Lemmen.
0.161 Sat May 20 12:52:35 MET DST 2000
indexdump: had bug in option handling.
XBase::Index: minor tweaks, bug reporting fixed, support
for cdx dates added, reported by Dan Albertsson.
XBase: long numeric values weren't truncated correctly,
reported by Dan Albertsson.
0.160 Sat Feb 12 20:03:56 MET 2000
XBase::Index: cdx now supports the delete, insert and
write_header methods for updating the index file. Handling
of negative integers fixed, as well as trailing nulls.
XBase: preliminary support for attach_index. Code for
making the module happy with _NULLFLAGS/0 type (we do not
interpret this at the moment, we just correctly ignore)
provided by Sebastien Nameche.
XBase::SQL: like operator now matches multiline strings as
well, problem reported by Petr Nalevka.
DBD::XBase: stump DBD::XBase::db::DESTROY added, to silence DBI,
patch by Gregory McCann.
0.1551 Sat Jan 9 19:21:16 CET 2000
dbfdump: Accepts --SQL modifier to --info, prints structure
of the table as a create table SQL.
0.155 Sun Nov 7 15:43:59 CET 1999
XBase::SQL and DBD::XBase: arbitraty arithmetic expression
possible in the select list. NAME attribute works fine for them.
SQL functions length, *trim, concat and substr supported. Fixed
bug in XBase::SQL causing bad division results. The DBD::XBase
documentation revised.
t/5_dbd_select* tests extended.
0.147 Mon Aug 16 10:48:37 MET DST 1999
XBase::SQL and DBD::XBase: fixed broken handling of NAME
attribute, introduced in 0.145 by an attempt to support
arbitrary expressions in the selected part. So I rolled back
that change and it's (again) only possible to select * or
select list of field names -- problem reported by adelton,
William McKee and Martin Treusch.
XBase::Index: fixed handling of indexes with 32-bit record
number -- patch by Jon Bloom.
XBase::Base: fixed typo _unlockex, pointed by Mike Sanders.
0.145 Mon Jun 21 12:49:19 MET DST 1999
DBD::XBase: updated TYPE_INFO for BOOLEAN and BLOB.
t/5_dbd_select.t: added tests for the named bind params.
0.144 Fri May 14 07:50:23 CEST 1999
XBase::SQL, DBD::XBase: added support for named bind parameters;
added comments.
0.141 Thu Apr 29 23:17:25 CEST 1999
XBase::Index: added code for multiple page cdx and fix for big
endian. Added code for negative ntx numeric values.
0.140 Thu Apr 29 10:50:58 MET DST 1999
XBase: the -1 memo records handle the 4 byte fields as well,
patch by Zbigniew Malinowski.
XBase::Index: support for cdx files improved (numeric fields),
subindexes.
XBase::SQL: code properly commented.
DBD::XBase: added the time type, aptch by Nikolai Saoukh.
0.132 Sun Apr 18 17:35:10 MET DST 1999
XBase::Base: dealing of openoptions fixed, problem spotted by
Zbigniew Malinowski.
XBase::SQL: added type numeric, patch by Nikolai Saoukh.
XBase::Index: added support for cdx (one page index so far),
added support for idx (untested).
DBD::XBase: added attributes PRECISION and SCALE, changed SQL
type for NUMERIC, patch by Nikolai Saoukh.
driver_characteristics now includes Tim's additions of Apr 4,
1999.
Created new XBase::FAQ.pod.
0.131 Sun Apr 18 8:47:12 MET DST 1999
XBase: memo records marked -1 are returned empty now,
spotted by Zbigniew Malinowski.
XBase::SQL: added possibility to have expression to the left
from the relational operator, suggested by Nikolai Saoukh.
DBD::XBase: fixed type_info to return array, bug spotted by
Alan Grover.
0.130 Sat Feb 27 18:09:04 MET 1999
DBD::XBase: fixed handling of the rows method.
Added driver_characteristics.pod to list characteristics of
DBD::XBase according to the draft by Tim Bunce.
0.129 Fri Feb 26 22:02:12 MET 1999
XBase.pm: added support for datetime fields T, testing data
provided by William McKee. Fix for ignorememo.
XBase::SQL: added time and datetime names to the SQL parser.
XBase::Memo and XBase.pm: added support for Apollo SMT memo
files, code based on that provided by Dirk Tostmann.
O_BINARY is only loaded on evil systems now.
0.127 Mon Feb 22 10:56:23 MET 1999
XBase::Base: opening readonly files fixed, patch by Petr
Machacek.
_unlockex fixed to _unlock. locksh, lockex and unlock now
return true/false based on result.
DBD::XBase::disconnect now closes the tables, patch by Martin
Treusch von Buttlar. Fixed typo in delete code.
t/2_write.t: added $table->close before size check, patch by
Ilya Chelpanov.
0.121 Thu Jan 21 20:07:04 MET 1999
XBase::Memo: fixed a typo in measuring the next_for_append,
pointed out by Dan Albertsson.
t/2_write.t: added afox5.dbf/FPT and a Fox* test.
0.120 Wed Jan 13 13:24:15 MET 1999
XBase.pm: added XBase::Cursor::rewind, names,
prepare_select_nf. Added readonly option. Added option 'table'
for dump -- using Data::ShowTable.
XBase.pm, XBase::Base.pm: open method now accepts hash of
options.
XBase::Memo: we now reset next_for_append to point behind the
end of the file, problem pointed out by Artem Belevich.
dbfdump: option --table, --fields now handles intervals.
t/2_read.t: fixed problem with order of fields in hash, patch
by Andreas J. Koenig.
t/4_dbfdump.t: added quotes for Win* systems, patch by Randy
Kobes.
0.115 Wed Jan 6 17:02:28 MET 1999
XBase::Memo: tries to find out which format (\x1a versus
\x1a\x1a) to use for dBaseIII memo files. It also writes back
this separator.
0.110 Sun Dec 20 21:29:05 MET 1998
XBase::SQL: added LIKE clause to WHERE part of SQL commands.
0.105 Sun Dec 20 17:09:43 MET 1998
XBase::Base: added workaround for systems that not only write
to files something else than they are told to, but also damage
the files by merely opening it.
XBase::Memo: fixed problem with fpt files -- thanks to Dan
Albertsson for providing many test files.
XBase::SQL: fix of handling of double quoted strings.
dbfdump: memosep and memofile options fixed.
t/4_dbfdump.t: avoided using cat.
t/*_dbd_*.t: forcing use of DBI version at least 1.0.
0.100 Mon Dec 7 11:00:23 MET 1998
DBD::XBase: capitalized AND/OR in SQL commands now work,
method rows implemented, reported by cybertoast. Updated to
use _set_fbav. Unpolished support to *info* methods.
XBase::SQL: fixed the primary key/key parsing problem, patch
by Bill Brinkley & Joe Johnston. A quick fix to avoid bug in
Perl with long blobs.
XBase::Memo: fixed appending record to dBaseIV memo used to
corrupt the data -- reported by Dan Albertsson.
0.0696 Mon Oct 26 11:57:01 MET 1998
DBD::XBase: added bug reporting by INSERT command and fixed
example in man page, spotted by Dmitry Dorofeev. Added DESC
part of ORDER BY clause, requested by Dmitry Dorofeev. Fixed
number of fields returned with ORDER BY clause, patch by
Paul Lindner. If the directory is not specified in call to
connect, it now defaults to current directory, not to root.
Fixed the fetch method -- it doesn't deadlock anymore, problem
reported by Ken Yamaguchi.
XBase::Index: added some MDX code.
XBase::Memo: header_len is now set to block_size, not 512,
patch by Fergus Lee.
XBase.pm: The type B is Fox double, not memo, spotted by
George F. Frazier. Added support for Fox* 4 byte memo fields,
data provided by William McKee.
All of the reads/tells rewritten to allow stream-lined processing,
suggested by Sergey Lukashevich. Use with caution, however.
Added autoflush to each opened file, so it's safe to read the
table with other process before closing the table in the first
one, spotted by Thomas Hahn.
0.0694 Tue Aug 25 23:24:35 MET DST 1998
XBase::Memo: Fixed error by 8 in dBaseIV reading/writing
code, bug reported by Kendal Van Dyke.
t/5_dbd_select.t changed to be non-unique-key in sort
independent, reported by Larry W. Virden.
0.0693 Tue Aug 25 10:25:20 MET DST 1998
DBD::XBase: Fixed handling ORDER BY with WHERE clauses,
reported by Kendal Van Dyke.
XBase: added nolongchars -- omitted from 0.068.
XBase::Index: added ro support for Clipper's ntx, the whole
module reworked. Thanks to Frans van Loon for providing
example ntx files and code that helped me to understand the
format. Also thanks to Robert Geer for his C code that also
helps me to check the expected results.
XBase::Base: last_record can be -1, meaning unknown --
disables checks.
Added t/3_ntx.t and added ORDER BY test to t/5_dbd_select.t.
Some documentation improvements.
0.068 Thu Aug 20 18:43:17 MET DST 1998
DBD::XBase: added support for ORDER BY, defined using substh.
Fixed error by 1 in deleting all records.
Added support for NULLABLE, NUM_OF_PARAMS and TYPE in FETCH.
Defined data_sources to dbi:XBase:.; disconnect_all returns 1;
defined tables, disconnect and DESTROY; quote adds support for
NULL.
XBase: create now marks presence of a dbt file in dbf.
Added attribute nolongchars to disable character fields longer
than 255.
Erik Bachmann's homepage moved.
XBase::Memo: added suport for memosep attribute, default
\x1a\x1a. Correct header is now written for dBaseIV memo
files.
Fix of handling dBaseIV memo records, patch by Barry Fishman.
XBase::SQL: added ORDER BY support, recognizes VARCHAR.
In dbit/40blobs.t we only try blob size 64 -- fix for bug in
Perl regexp engine. Change in dbit/40bindparam.t, quick fix
for missing NULL chars. In dbit/50chopblanks.t swapped
$$ref[1] and $name.
0.065 Sun Jun 7 15:18:57 MET DST 1998
Added table specific ChopBlanks. Added fetch_hashref to
XBase::Cursor.
Docs updated.
0.064 Sun May 31 18:56:26 MET DST 1998 (*****)
Major rewrite of the DBD and SQL part. New features:
support for bind parameters in where, insert and update.
Support for NULL and IS NULL tests. The XBase::SQL is faster
and hopefully clearer. The DBD::XBase supports (among others)
bind_col. The DBD driver now passes 98.39 % of the standard
DBD tests.
Added support for data type 'I' for Fox* into XBase.pm.
0.0632 Wed May 27 12:27:04 MET DST 1998
Added --nomemo option to dbfdump. The list of entires is made
longer in any non-leaf page in ndx. Added check for the magic
"FFFF0800" tag in dBaseIV dbt file when reading it.
0.0631 Fri May 22 22:24:02 CEST 1998
Fixed handling big endian in numeric fields in ndx, fixe
problem with key/record length.
0.063 Sun May 17 21:46:08 CEST 1998
Added first support for ndx index files. From XBase module
it's available using prepare_select_with_index. It's very
alpha but it seems to handle character and numeric (not date
yet) types. And yes, it's read only.
Added FETCH('NAME') and _ListTables to DBD::XBase, added drop
table, integer type and dummy not null to XBase::SQL. The
generic DBI test suite now goes well up until bind params, put
on ToDo list.
0.062 Thu May 14 15:11:32 MET DST 1998
Field and table names in XBase::SQL now accept digits and
underscores, in XBase::Memo, we check for
($dbf_version & 15), patches by Jens Quade.
Fixed handling of Fox* fpt files and a problem with memo
files that have record length different than 512, patches
by Thomas Grueter.
0.061 Tue Apr 7 21:52:07 MET DST 1998
Fixed writing undefined values in numeric fields.
Fixed dealing with uppercase extensions.
XBase::SQL fixed to support int, found by Chris Winters.
Offset in the record headers in dbf now set properly, patch by
Dave Frascone.
Added ignorememo option to new XBase call. Use this if you
have a memo field in dbt but do not have the memo file.
Otherwise you will get an error, request by Martin Jost.
Other fixes by Martin Jost included.
0.060 Fri Mar 20 10:20:45 MET 1998
Added method prepare_select and XBase::Cursor to implement
long selects. Method dump_records now prints directly,
doesn't use get_all_records.
Added parameter --info into the script dbfdump to print the
header info.
Changed way of determining the type of the dbt file after
discussion with Sergey Lukashevich.
0.0599 Wed Mar 11 22:58:45 MET 1998
Option to specify the memo file in call to XBase::new added.
Dump_records made customizable.
0.0598 Tue Mar 10 22:40:00 MET 1998
Fixed bug when finding a name for the memo file in XBase; in
dBaseIII memo field we will only check for one \x1a to allow
as many formats possible, we still write two of them; typo in
init_memo fixed -- patches by Martin Jost.
0.0597 Tue Mar 3 23:40:56 MET 1998 (*****)
Major code revision and check:
Error handling fixed, locking added. Rewritten process_* to
rproc and wproc arrays.
Added read_all_records. Minor typos and bugs fixed.
Test suite extended.
0.0584 Mon Mar 2 10:04:00 MET 1998
Fix of XBase::Memo::dBaseIV::read_record for memo fields
longer than record length by Jochen Friedrich.
0.0583 Thu Feb 12 00:08:07 MET 1998
Bug fix for floating fields, patch by Carlos Augusto de
Almeida.
0.058 Mon Feb 9 19:15:03 MET 1998 (*****)
XBase::SQL rewritten, DBD::XBase now supports select, delete,
insert, update and create table. Documentation for DBD::XBase
extended. DBD::XBase is still alpha but rather stable.
Added support for fpt memo files.
Fixed bug with dBase IV memo files, the block length is stored
somewhere else, patch by James LewisMoss. Fixed bug with field
names in newer dbf files, terminated by zero byte, patch by Petr
Olsak. Added binmode for the OSes that write to disk something
else that they are told to, reported by Robert Bauer. Removed
the test that caused read to fail on read-only files, reported
by Stewart Russell.
The error handling reviewed, most of the error messages are
now local to the object ($table->errstr()).
0.039 Wed Dec 17 19:53:49 MET 1997 (*****)
DBD::XBase supports select where and delete where.
0.0352 Mon Dec 15 11:29:46 MET 1997
Fixed bug with long memo fields, reported by Tejinderpal
Singh.
0.0345 Mon Dec 8 13:02:46 MET 1997
Fixed bug with "\0" at the end of field names in header,
spotted by Roberto Congiu.
0.0343 Thu Dec 4 10:52:41 MET 1997
Column names are converted to uppercase. SQL parsing moved to
XBase::SQL module. Added require XBase::Memo when creating new
Memo file. Added test for create and drop.
0.0342 Fri Nov 28 18:30:31 MET 1997
Fixed bug when creating new file, spotted by Roberto Congiu.
$XBase::errstr depreciated, using XBase->errstr instead. Minor
changes in the documentation.
0.03301 Thu Nov 20 17:32:53 MET 1997
Handling null numeric fields (John D Groenveld). Changed
"look for error" test in header.t to be OS portable. Fixed bug
in decode_version_info (dbtflag). Fixed bug with field length
in XBase::create, spotted by Risto Wichman.
0.032 Thu Nov 6 16:27:10 MET 1997
Fixed bugs: test on "\r" in read_header; check of record
number in delete and undelete (spotted by Frans van Loon).
Added methods field_lengths and field_decimals and changed
*_on_read in [NF] section (spotted by John D Groenveld).
0.031 Thu Oct 30 19:47:37 MET 1997
Fixed bug in docs about write_record. Changed format of
get_field_info to include field number. Fixed bug with decimals.
0.03 Mon Oct 27 23:23:17 MET 1997 (*****)
Minor bug fixes. XBase::create added. Tests extended. Module
released on CPAN.
0.029 Fri Oct 24 19:34:32 MET DST 1997
Bug fixes. Added methods for writing dbt files.
The writing methods are now set_record, set_record_hash and
update_record.
0.024 Mon Oct 20 22:17:44 MET DST 1997
The original release. Includes XBase that reads dbf and dbt
and writes dbf (but not dbt). Put on CPAN mainly for other
people to test and comment.
---
Note: Versions tagged (*****) were major updates and code changes.
I have been using the Xbase(3) module by Pratap Pereira for quite
a time to read the dbf files, but it had no writing capabilities, it
was not use strict clean and the author did not support the module
behind the version 1.07. So I started to make my own patches and
thought it would be nice if other people could make use of them.
I thought about taking over the development of the original Xbase
package, but the interface seemed rather complicated to me.
So with the help of article XBase File Format Description by Erik
Bachmann on URL
http://www.clicketyclick.dk/databases/xbase/format/
formerly http://www.e-bachmann.dk/docs/xbase.htm
I have written a new module. It doesn't use any code from Xbase-1.07
and you are free to use and distribute it under the same terms as Perl
itself.