通过 Perl 接口可以创建 Perl 脚本,该脚本可读取由 exacct 框架生成的记帐文件。您还可以创建编写 exacct 文件的 Perl 脚本。
此接口与基础 C API 在功能上是等效的。如果可能,通过基础 C API 获取的数据将显示为 Perl 数据类型。使用此功能,可以更轻松地访问数据,并且无需进行缓冲区压缩和解压缩操作。此外,所有内存管理均由 Perl 库执行。
各种与项目、任务和 exacct 相关的功能可分为多个组。每个功能组都位于单独的 Perl 模块中。每个模块都以 Sun 标准的 Sun::Solaris:: Perl 软件包前缀开头。Perl exacct 库提供的所有类均位于 Sun::Solaris::Exacct 模块中。
基础 libexacct(3LIB) 库提供针对 exacct 格式文件、目录标记和 exacct 对象的操作。exacct 对象分为两种类型:
项,是指单一的数据值(标量)
组,是指项的列表
下表概述了每个模块。
模块(不应包含空格) |
说明 |
更多信息 |
---|---|---|
Sun::Solaris::Project |
此模块提供了访问项目操作函数 getprojid(2)、endprojent(3PROJECT)、fgetprojent(3PROJECT)、getdefaultproj(3PROJECT)、getprojbyid(3PROJECT)、getprojbyname(3PROJECT)、getprojent(3PROJECT)、getprojidbyname(3PROJECT)、inproj(3PROJECT)、project_walk(3PROJECT)、setproject(3PROJECT) 和 setprojent(3PROJECT) 的函数。 |
Project(3PERL) |
Sun::Solaris::Task |
此模块提供了访问任务操作函数 gettaskid(2) 和 settaskid(2) 的功能。 |
Task(3PERL) |
Sun::Solaris::Exacct |
此模块是顶层 exacct 模块。此模块提供了访问与 exacct 相关的系统调用 getacct(2)、putacct(2) 和 wracct(2) 的功能。此模块还提供了访问 libexacct(3LIB) 库函数 ea_error(3EXACCT) 的功能。此模块同时也提供了所有 exacct EO_*、EW_*、EXR_*、P_* 和 TASK_* 宏的常量。 |
Exacct(3PERL) |
Sun::Solaris::Exacct:: Catalog |
此模块提供了面向对象的方法,以访问 exacct 目录标记中的位字段。此模块还提供了访问 EXC_*、EXD_* 和 EXD_* 宏常量的权限。 |
Exacct::Catalog(3PERL) |
Sun::Solaris::Exacct:: File |
此模块提供了面向对象的方法,以访问 libexacct 记帐文件函数 ea_open(3EXACCT)、ea_close(3EXACCT)、ea_get_creator(3EXACCT)、ea_get_hostname(3EXACCT)、ea_next_object(3EXACCT)、ea_previous_object(3EXACCT) 和 ea_write_object(3EXACCT)。 |
Exacct::File(3PERL) |
Sun::Solaris::Exacct:: Object |
此模块提供了面向对象的方法,以访问单个 exacct 记帐文件对象。exacct 对象表示为被指定隶属于相应 Sun::Solaris::Exacct::Object 子类的不透明参考。此模块分为项和组两种对象类型。在此级别上提供了访问 ea_match_object_catalog(3EXACCT) 和 ea_attach_to_object(3EXACCT) 函数的方法。 |
Exacct::Object(3PERL) |
Sun::Solaris::Exacct:: Object::Item |
此模块提供了面向对象的方法,以访问单个 exacct 记帐文件项。此类型的对象从 Sun::Solaris::Exacct::Object 中继承。 |
Exacct::Object::Item(3PERL) |
Sun::Solaris::Exacct:: Object::Group |
此模块提供了面向对象的方法,以访问单个 exacct 记帐文件组。此类型的对象从 Sun::Solaris::Exacct::Object 中继承。这些对象提供了对 ea_attach_to_group(3EXACCT) 函数的访问。组中包含的各项表示为 Perl 数组。 |
Exacct::Object::Group(3PERL) |
Sun::Solaris::Kstat |
此模块提供了 kstat 功能的与 Perl 关联的散列接口。/bin/kstat 提供了此模块的使用示例,此示例采用 Perl 编写。 |
Kstat(3PERL) |
有关说明如何使用上表中介绍的模块的示例,请参见使用 libexacct 的 Perl 接口。