扩展记帐的 Perl 扩展可为基础 libexacct(3LIB) API 提供 Perl 接口以及以下增强功能。
与 C API 完全等效,可提供在功能上与基础 C API 等效的 Perl 接口。
该接口提供了一种无需进行 C 编码即可访问的 exacct 文件的机制。所有在 C 中可以使用的功能也能借助 Perl 接口使用。
易于使用。
从基础 C API 获取的数据会表示为 Perl 数据类型。Perl 数据类型使数据访问更加容易,并且无需进行缓冲区压缩和解压缩操作。
自动内存管理。
C API 要求程序员在访问 exacct 文件时负责管理内存。内存管理采用的形式是将相应的标志传递给函数(如 ea_unpack_object(3EXACCT))并显式分配传递给 API 的缓冲区。Perl API 取消了这些要求,因为所有的内存管理都由 Perl 库执行。
防止错误地使用 API。
ea_object_t 结构提供了 exacct 记录在内存中的表示形式。ea_object_t 结构是用于处理组和项记录的联合类型。因此,类型不正确的结构可能会被传递给某些 API 函数。通过添加类分层结构可防止此类型的编程错误。