不过,为了和工业标准更好的看齐,Perl 5.6 现在接受(并且也更愿意使用)下面的三段式:
use 5.6.0; # 它是版本 5,子版本 6,补丁级 0。
如果 VERSION 参数在 MODULE 后面出现,那么 use 将在类 MODULE 里调用 VERSION 方法,同时把给出的 VERSION 当作参数给他。请注意在 VERSION 后面没有逗号!缺省的 VERSION 方法(通常是从 UNIVERSAL 类里继承过来的。)会在给出的版本大于变量 $Module::VERSION 的值的情况下发表意见。
参阅第三十二章获取一个标准模块的列表。
因为 use 提供了一个非常开放的接口,所以用法(编译器指示器)也是通过模块来实现的。当前实现了的用法包括:
use autouse 'Carp' => qw(carp croak); use bytes; use constant PI => 4 * atan2(1,1); use diagnostics; use integer; use lib '/opt/projects/spectre/lib'; use locale; use sigtrap qw(die INT QUIT); use strict qw(subs vars refs); use warnings "deprecated";
许多这些用法模块向当前词法范围输入语意。(它和普通模块不同,普通模块只是向当前包里输入符号,而除了该词法范围是在带有该包的情况下编译的以没有什么关系。也就是说,哦,看看第十一章吧。)
还有一个对应的声明,no,它“戒除”任何原来用 use 输入的东西,让它们变得不再重要:
no integer; no strice 'refs'; no utf8; no warnings "unsafe";
参阅第三十一章获取一个标准用法的列表。
utime LIST
该函数改变一列文件里的每一个文件的访问和修改时间。列表的头两个元素必须是数字化的访问和修改时间,顺序是访问在前修改在后。该函数返回成功改变的文件的数目。每个文件的 inode 修改时间设置成当前时间。下面是一个 touch 命令的例子,它设置该文件的修改日期(假设你是所有者)为近一个月后:
#! /usr/bin/perl # montouch - post-date files now + 1 month $day = 24 * 60 * 60; # 24 小时的秒数 $later = time() + 30 * $day; # 30 天接近一个月 utime $later, $later, @ARGV;
values HASH
这个函数返回一个包含指定散列 HASH 里的所有值的列表。这些值是以看似随机的顺序返回的,但是这个顺序和 keys 或 each 函数在同一个散列上生成的顺序相同。怪异的是,如果要通过一个散列的数值对它进行排序,那么你通常需要使用 keys 函数,所以看看 keys 函数里的例子找找灵感。
你可以用这个函数修改一个散列的数值,因为它返回的列表包含数值的别名,而不是拷贝。(在早期的版本里,你需要用散列的片段来实现这个功能。)
for (@hash{keys %hash}) { s/foo/bar/g } # 老办法
for (values %hash) { s/foo/bar/g } # 新手段
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-28372-27.html
把中国人全改造成奴隶