[Chinese-commits] [manpages-zh] 48/131: fix

Boyuan Yang hosiet-guest at moszumanska.debian.org
Tue Dec 13 19:59:39 UTC 2016


This is an automated email from the git hooks/post-receive script.

hosiet-guest pushed a commit to branch master
in repository manpages-zh.

commit b0d5944f68fed311303a028ce1f327d5f10e9bae
Author: LI Daobing <lidaobing at gmail.com>
Date:   Fri Feb 29 20:08:35 2008 +0800

    fix
---
 src/man7/perldata.7 | 52 +++++++++++++++++++++++++++++-----------------------
 1 file changed, 29 insertions(+), 23 deletions(-)

diff --git a/src/man7/perldata.7 b/src/man7/perldata.7
index 372470a..0e9fc9c 100644
--- a/src/man7/perldata.7
+++ b/src/man7/perldata.7
@@ -27,7 +27,7 @@
 .\".\" give an unbreakable dash,\*(PI will give pi,\[lq] will give a left
 .\".\" double quote, and\[rq] will give a right double quote.  | will give a
 .\".\" real vertical bar. \*(C+ will give a nicer C++.  Capital omega is used to
-.\".\" do unbreakable dashes and therefore won't be available. \*(C` and\*(C'
+.\".\" do unbreakable dashes and therefore won't be available. ` and'
 .\".\" expand to `' in nroff, nothing in troff, for use with C<>.
 .\".tr \(*W-|\(bv\*(Tr
 .\".ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
@@ -140,9 +140,15 @@ Perl 有三种内建的数据类型:标量,数组和关联数组(即\[lq]
 hash\[rq])。数组以数字为索引,通常以0开始,升序排列。哈希表以与值相关联
 的字符串为索引,内部排列是无序的。
 .PP
-值通常通过一个变量名(或变量名的引用)来引用。变量名的前缀字符显示了值的数据类型。其余部分指明了引用的是哪一个特定的值。通常变量名是一个唯一的标识符,以字母或下划线开始,包括字母、下划线和数字。某些情况下,也可以是以\*(C`::\*(C'\fR 分隔的一串标识符(或者是过时的\*(C`'\*(C'\fR);除了最后一个,其它都是包名,用来定位最后一个标识符所在的位置(详情参见 perlmod 中的 Packages)。可以用一个简单的标识符来替代它,利用引用就可以。下文有详述,也可参见 perlref .
+值通常通过一个变量名(或变量名的引用)来引用。变量名的前缀字符显示了值的
+数据类型。其余部分指明了引用的是哪一个特定的值。通常变量名是一个唯一的标
+识符,以字母或下划线开始,包括字母、下划线和数字。某些情况下,也可以是以
+`::'\fR 分隔的一串标识符(或者是过时的`''\fR);除了最后一
+个,其它都是包名,用来定位最后一个标识符所在的位置(详情参见 perlmod 中的
+Packages)。可以用一个简单的标识符来替代它,利用引用就可以。下文有详述,
+也可参见 perlref .
 .PP
-Perl 也有内建的变量,其名称不遵循这一规则。它们名称古怪,这样可以避免与你的变量名冲突。模式匹配中被匹配到的字符串是以\*(C`$\*(C'\fR 加一个数字的变量名来存放的(参见 the perlop manpage 和 the perlre manpage)。 另外,还有几个使你可以介入perl 内部工作的特殊变量,其名称中包含标点和控制字符(参见 perlvar )
+Perl 也有内建的变量,其名称不遵循这一规则。它们名称古怪,这样可以避免与你的变量名冲突。模式匹配中被匹配到的字符串是以`$'\fR 加一个数字的变量名来存放的(参见 the perlop manpage 和 the perlre manpage)。 另外,还有几个使你可以介入perl 内部工作的特殊变量,其名称中包含标点和控制字符(参见 perlvar )
 .PP
 标量以 '$'开始, 即使它是数组或哈希的元素也是如此。可以把 '$' 理解为`s' 
 ,表示scalar(标量)。(译者注:此处根据有关文档,做了改动,下面的@处也
@@ -189,8 +195,8 @@ Perl 也有内建的变量,其名称不遵循这一规则。它们名称古怪
 因为变量名以 '$', '@', 或 '%'开始, 保留词对变量没有什麽影响。保留词影响
 的是标签和文件句柄,因为它们不是以特殊字符前缀开始的。你不能用\[lq]log\[rq]
 来命名文件句柄,因为它是保留词(提示:你可以用
-\*(C`open(LOG,'logfile')\*(C'\fR 而不是
-\*(C`open(log,'logfile')\*(C'\fR). 使用大写的文件句柄既增加了可读性,
+`open(LOG,'logfile')'\fR 而不是
+`open(log,'logfile')'\fR). 使用大写的文件句柄既增加了可读性,
 又减少了冲突的发生。大小写是有意义的\-\-\[lq]\s-1FOO\s0\[rq],\[lq]Foo\[rq],
 和\[lq]foo\[rq] 是不同的名称。以字母或下划线开始的名称可以包含数字和下划线。
 .PP
@@ -226,10 +232,10 @@ sort操作提供列表上下文给<>, <>会读入STDIN中的每一行直到结
 .PP
 赋值比较特殊,左侧的参数决定了右侧的参数的上下文。赋值给标量,则右侧参数的上下文是标量上下文;赋值给数组或哈希,则右侧参数的上下文是列表上下文。赋值给列表(或片段,其实也是列表),右侧的上下文也是列表上下文。
 .PP
-当你使用\*(C`use warnings\*(C'\fR 编译指示或 Perl 的\fB\-w\fR 参数时,
+当你使用`use warnings'\fR 编译指示或 Perl 的\fB\-w\fR 参数时,
 你可能会看到这样的警告:在\[lq]无效的上下文,void context\[rq] 中使用了常量
-或函数。无效上下文的意思是值被丢弃不用,比如只包含有\*(C`"fred";
-\*(C'\fR 的语句; 或是\*(C`getpwuid(0);\*(C'\fR;. 在要求列表上下文的函数
+或函数。无效上下文的意思是值被丢弃不用,比如只包含有`"fred";
+'\fR 的语句; 或是`getpwuid(0);'\fR;. 在要求列表上下文的函数
 被标量上下文环境调用时,也会出现这个警告.
 .PP
 用户定义的子程序可能会需要查看上下文是无效,标量,还是列表。不过,大多数并
@@ -255,7 +261,7 @@ Perl 中的所有数据都是标量, 标量的数组,标量的哈希. 标量可
 .Ve
 .fi
 .PP
-这种方法可能是最好的,因为如若不然你不会正确对待\s-1IEEE\s0 的注释,比如\*(C`NaN\*(C'\fR 和无穷大. 别的时候, 你可能更愿意用\fIPOSIX::strtod()\fR 函数或是正则表达式来检测字符串是否能用做数字(参见perlre).
+这种方法可能是最好的,因为如若不然你不会正确对待\s-1IEEE\s0 的注释,比如`NaN'\fR 和无穷大. 别的时候, 你可能更愿意用\fIPOSIX::strtod()\fR 函数或是正则表达式来检测字符串是否能用做数字(参见perlre).
 .PP
 .nf
 .Vb 8
@@ -334,7 +340,7 @@ Perl 5 改变了$[\fR 的意义: 不必担心别的程序改变了$[\fR 的值.
 .PP
 在数字常量中可以在数字间插入下划线来增加可读性。例如,可以三位一组 (Unix 样式的分组,例如 0b110_110_100),或者四位一组 (来表示 nibbles,例如 0b1010_0110),或者其他分组。
 .PP
-字符串通常以单引号或双引号括起. 与标准Unix shells中的引号相似: 双引号可以接收转义和变量; 单引号不可以 (除了\*(C`\e'\*(C'\fR 和\*(C`\e\e\*(C'\fR)). C 样式的转义字符可以用来输入新行,跳格等字符,转义字符的列表可以参见 perlop 中的\[lq]Quote and Quote-like Operators\[rq]
+字符串通常以单引号或双引号括起. 与标准Unix shells中的引号相似: 双引号可以接收转义和变量; 单引号不可以 (除了`\e''\fR 和`\e\e'\fR)). C 样式的转义字符可以用来输入新行,跳格等字符,转义字符的列表可以参见 perlop 中的\[lq]Quote and Quote-like Operators\[rq]
 .PP
 十六进制,八进制,或二进制以字符串形式表示(如:'0xff'),不能自动转换为十进制形式. hex() 和 oct() 函数可以实现转换. 参见 perlfunc 中的 hex 和 oct 了解详情.
 .PP
@@ -371,7 +377,7 @@ perl 中没有 double interpolation,因此$100\fR 保持不变。
 not be available after Perl 5.8.  The marginal benefits of v\-strings
 were greatly outweighed by the potential for Surprise and Confusion.
 .PP
-类似\*(C`v1.20.300.4000\*(C'\fR 这样的形式被解释为一个字符串. 这种形式称为 v\-strings,提供了更易读的方法来构造字符串,比起"\ex{1}\ex{14}\ex{12c}\ex{fa0}"\fR 更加易读. 这在表示 Unicode 字符串时很有用, 在使用字符串比较命令(\*(C`cmp\*(C'\fR,\*(C`gt\*(C'\fR,\*(C`lt\*(C'\fR 等)比较版本号时也非常有用. 如果其中的点号多于两个, 则开始的\*(C`v\*(C'\fR 可以省略.
+类似`v1.20.300.4000'\fR 这样的形式被解释为一个字符串. 这种形式称为 v\-strings,提供了更易读的方法来构造字符串,比起"\ex{1}\ex{14}\ex{12c}\ex{fa0}"\fR 更加易读. 这在表示 Unicode 字符串时很有用, 在使用字符串比较命令(`cmp'\fR,`gt'\fR,`lt'\fR 等)比较版本号时也非常有用. 如果其中的点号多于两个, 则开始的`v'\fR 可以省略.
 .PP
 .nf
 .Vb 3
@@ -384,23 +390,23 @@ were greatly outweighed by the potential for Surprise and Confusion.
 这种形式可以用于require 和 use 中作版本检查.\[lq]$^V\[rq] 特殊变量中的Perl版本号就是以这种形式保存的. 参见 perlvar 中的\[lq]$^V\[rq]
 注意使用 v\-strings 来保存 IPv4 地址是不可移植的,除非同时使用 Socket 包的\fIinet_aton()\fR/\fIinet_ntoa()\fR 函数。
 .PP
-注意从 Perl 5.8.1 开始单个数字的 v\-strings (类似\*(C`v65\*(C'\fR) 如果在\*(C`=>\*(C'\fR 操作符(通常用来从 hash 值中区分开 hash 键) 之前,不是一个 v\-strings,而是解释为字符串 ('v65')。在 Perl 5.6.0 到 Perl 5.8.0 它一直是 v\-strings,但是这样带来了更多混淆和错误而不是优点。多个数字的 v\-strings,类似\*(C`v65.66\*(C'\fR 和65.66.67\fR,继续总是被当作 v\-strings
+注意从 Perl 5.8.1 开始单个数字的 v\-strings (类似`v65'\fR) 如果在`=>'\fR 操作符(通常用来从 hash 值中区分开 hash 键) 之前,不是一个 v\-strings,而是解释为字符串 ('v65')。在 Perl 5.6.0 到 Perl 5.8.0 它一直是 v\-strings,但是这样带来了更多混淆和错误而不是优点。多个数字的 v\-strings,类似`v65.66'\fR 和65.66.67\fR,继续总是被当作 v\-strings
 .PP
 \fI特殊常量\fR
 .IX Subsection "Special Literals"
 .PP
-特殊变量 _\|_FILE_\|_, _\|_LINE_\|_, 和 _\|_PACKAGE_\|_ 代表当前文件名,行号,和包名. 它们只能作为单独的符号来使用; 不能用于字符串中内插. 如果没有当前包(用\*(C`package;\*(C'\fR 指令来实现), 则_\|_PACKAGE_\|_ 是一个未定义的值.
+特殊变量 _\|_FILE_\|_, _\|_LINE_\|_, 和 _\|_PACKAGE_\|_ 代表当前文件名,行号,和包名. 它们只能作为单独的符号来使用; 不能用于字符串中内插. 如果没有当前包(用`package;'\fR 指令来实现), 则_\|_PACKAGE_\|_ 是一个未定义的值.
 .PP
 控制字符 ^D 和 ^Z, 以及 _\|_END_\|_ 和 _\|_DATA_\|_ 变量可以表示文件的逻辑结束. 其后的文本被忽略.
 .PP
-_\|_DATA_\|_ 之后的文本可以通过文件句柄\*(C`PACKNAME::DATA\*(C'\fR 读取,\*(C`PACKNAME\*(C'\fR 是 _\|_DATA_\|_ 所在的包的名称. 句柄指向_\|_DATA_\|_ 后面的文本. 读取结束程序会自动关闭该句柄\*(C`close DATA\*(C'\fR. 为了与 _\|_DATA_\|_ 还没有出现以前已经存在的程序兼容, _\|_END_\|_ 在顶级脚本中与 _\|_DATA_\|_ 性质相同(在用\*(C`require\*(C'\fR 或\*(C`do\*(C'\fR 调用时是不同的) 不过可以通过\*(C`main::DATA\*(C'\fR 来调用其中的内容.
+_\|_DATA_\|_ 之后的文本可以通过文件句柄`PACKNAME::DATA'\fR 读取,`PACKNAME'\fR 是 _\|_DATA_\|_ 所在的包的名称. 句柄指向_\|_DATA_\|_ 后面的文本. 读取结束程序会自动关闭该句柄`close DATA'\fR. 为了与 _\|_DATA_\|_ 还没有出现以前已经存在的程序兼容, _\|_END_\|_ 在顶级脚本中与 _\|_DATA_\|_ 性质相同(在用`require'\fR 或`do'\fR 调用时是不同的) 不过可以通过`main::DATA'\fR 来调用其中的内容.
 .PP
 参见 SelfLoader 详细了解 _\|_DATA_\|_, 其中还有例子. 要注意在BEGIN 块中无法读取DATA句柄: 因为BEGIN 块在编译时即被执行, 而此时 _\|_DATA_\|_ (或 _\|_END_\|_) 还未被程序看到.
 .PP
 \fI裸词\fR
 .IX Subsection "Barewords"
 .PP
-在文法上没有特殊意义的词语都被看作字符串. 称之为 "裸词". 和文件句柄以及标签一样, 仅包含小写字母的裸词有可能在将来与程序中的保留词发生冲突, 实际上,当你使用\*(C`use warnings\*(C'\fR 语句,或是\fB\-w\fR 选项时, Perl会对此提出警告. 一些人可能希望完全禁止这样的词. 如果有如下语句:
+在文法上没有特殊意义的词语都被看作字符串. 称之为 "裸词". 和文件句柄以及标签一样, 仅包含小写字母的裸词有可能在将来与程序中的保留词发生冲突, 实际上,当你使用`use warnings'\fR 语句,或是\fB\-w\fR 选项时, Perl会对此提出警告. 一些人可能希望完全禁止这样的词. 如果有如下语句:
 .PP
 .nf
 .Vb 1
@@ -408,7 +414,7 @@ _\|_DATA_\|_ 之后的文本可以通过文件句柄\*(C`PACKNAME::DATA\*(C'\fR
 .Ve
 .fi
 .PP
-那么不能被解释为子程序的裸词会引起编译时错误. 这种限制到块结束时终止. 而内部的块可以撤消这一限制, 用\*(C`no strict 'subs'\*(C'\fR
+那么不能被解释为子程序的裸词会引起编译时错误. 这种限制到块结束时终止. 而内部的块可以撤消这一限制, 用`no strict 'subs''\fR
 .PP
 \fI数组合并分隔符\fR
 .IX Subsection "Array Joining Delimiter"
@@ -428,7 +434,7 @@ _\|_DATA_\|_ 之后的文本可以通过文件句柄\*(C`PACKNAME::DATA\*(C'\fR
 .Ve
 .fi
 .PP
-在搜索模式中(在双引号字符串中也是)有一个易混淆之处:\*(C`/$foo[bar]/\*(C'\fR 应该是\*(C`/${foo}[bar]/\*(C'\fR (\*(C`[bar]\*(C'\fR 是正则表达式的字符类) 还是\*(C`/${foo[bar]}/\*(C'\fR/ (\*(C`[bar]\*(C'\fR 是数组@foo\fR 的下标) 呢? 如果@foo\fR 不存在, 那很明显它应该是字符类. 如果@foo\fR 存在, Perl 会尽力猜测\*(C`[bar]\*(C'\fR 的含义, 且它几乎总是对的. 如果它猜错了, 或者你比较偏执, 你可以使用花括号.
+在搜索模式中(在双引号字符串中也是)有一个易混淆之处:`/$foo[bar]/'\fR 应该是`/${foo}[bar]/'\fR (`[bar]'\fR 是正则表达式的字符类) 还是`/${foo[bar]}/'\fR/ (`[bar]'\fR 是数组@foo\fR 的下标) 呢? 如果@foo\fR 不存在, 那很明显它应该是字符类. 如果@foo\fR 存在, Perl 会尽力猜测`[bar]'\fR 的含义, 且它几乎总是对的. 如果它猜错了, 或者你比较偏执, 你可以使用花括号.
 .PP
 here\-document 的语法已经被移动到 perlop 中的\[lq]Quote and Quote-like Operators\[rq]
 .SS "List value constructors 列表值构造"
@@ -498,7 +504,7 @@ here\-document 的语法已经被移动到 perlop 中的\[lq]Quote and Quote-lik
 .PP
 空列表可以表示为(). 在列表中插入空列表没有意义. ((),(),()) 与()相同. 同样, 内插一个空数组也没有意义.
 .PP
-合并的语法表示开和闭括号都是可选的 (除非为表示优先级需要);而列表可以以可选的逗号结束表示列表中的多个逗号是合法的语法。列表\*(C`1,,3\*(C'\fR 是两个列表的并置,\*(C`1,\*(C'\fR 还有3\fR, 第一个以可选的逗号结束。\*(C`1,,3\*(C'\fR 是\*(C`(1,),(3)\*(C'\fR 也是\*(C`1,3\*(C'\fR (类似的,\*(C`1,,,3\*(C'\fR 是\*(C`(1,),(,),3\*(C'\fR 也是\*(C`1,3\*(C'\fR 等等) 不过我们不建议你使用这么混乱的写法
+合并的语法表示开和闭括号都是可选的 (除非为表示优先级需要);而列表可以以可选的逗号结束表示列表中的多个逗号是合法的语法。列表`1,,3'\fR 是两个列表的并置,`1,'\fR 还有3\fR, 第一个以可选的逗号结束。`1,,3'\fR 是`(1,),(3)'\fR 也是`1,3'\fR (类似的,`1,,,3'\fR 是`(1,),(,),3'\fR 也是`1,3'\fR 等等) 不过我们不建议你使用这么混乱的写法
 .PP
 列表也可以象数组一样使用下标. 为了避免歧义需要在列表外使用括号. 例如:
 .PP
@@ -540,7 +546,7 @@ here\-document 的语法已经被移动到 perlop 中的\[lq]Quote and Quote-lik
 \&    ($map{'red'}, $map{'blue'}, $map{'green'}) = (0x00f, 0x0f0, 0xf00);
 .Ve
 .PP
-特例是可以赋值为\*(C`undef\*(C'\fR。当忽略程序的某些返回值时这很有用:
+特例是可以赋值为`undef'\fR。当忽略程序的某些返回值时这很有用:
 .PP
 .Vb 1
 \&    ($dev, $ino, undef, undef, $uid, $gid) = stat($file);
@@ -593,7 +599,7 @@ here\-document 的语法已经被移动到 perlop 中的\[lq]Quote and Quote-lik
 .PP
 列表和数组交互性很强, 哈希则不然. 你可以象使用数组时一样对列表使用下标并不意味着可以象使用哈希一样使用列表. 同样,处于列表中的哈希总是以字值对的形式展开. 因此有时使用引用要更好一些.
 .PP
-通常在字值对中使用\*(C`=>\*(C'\fR 操作符会更易读.\*(C`=>\*(C'\fR 与逗号作用相同, 不过它还有一个作用, 那就是可以使它左侧的对象被解释为字符串\*(-- 如果该对象是裸字的话,将是合法的标识符 (\*(C`=>\*(C'\fR 不引用包含双冒号的复合标识符). 这在初始化哈希时棒极了:
+通常在字值对中使用`=>'\fR 操作符会更易读.`=>'\fR 与逗号作用相同, 不过它还有一个作用, 那就是可以使它左侧的对象被解释为字符串\*(-- 如果该对象是裸字的话,将是合法的标识符 (`=>'\fR 不引用包含双冒号的复合标识符). 这在初始化哈希时棒极了:
 .PP
 .nf
 .Vb 5
@@ -634,7 +640,7 @@ or for using call-by-named-parameter to complicated functions:
 注意哈希初始化时的顺序和输出时的顺序并不一定相同. 要得到顺序的输出可以参见 perlfunc 中的\[lq]sort\[rq]
 .SS "Subscripts 下标"
 .IX Subsection "Subscripts"
-数组可以用一个美元符号,加上它的名字(不包括前导的\*(C`@\*(C'\fR),加上方括号和其中包含的下标来取得值。例如:
+数组可以用一个美元符号,加上它的名字(不包括前导的`@'\fR),加上方括号和其中包含的下标来取得值。例如:
 .PP
 .nf
 .Vb 2
@@ -707,7 +713,7 @@ Hash 下标与此类似,但是不使用方括号而是花括号。例如:
 .Ve
 .fi
 .PP
-既然改变片段就会改变数组或哈希的原始值, 那么\*(C`foreach\*(C'\fR 结构可以部分或全部地改变数组或哈希的值.
+既然改变片段就会改变数组或哈希的原始值, 那么`foreach'\fR 结构可以部分或全部地改变数组或哈希的值.
 .PP
 .Vb 1
 \&    foreach (@array[ 4 .. 10 ]) { s/peter/paul/ }
@@ -827,7 +833,7 @@ Perl 使用叫做 全局类型 的类型来支持整个符号表项. 全局类
 .Ve
 .fi
 .PP
-注意如果使用了初始化的标量,那么结果会有不同:\*(C`my $fh='zzz'; open($fh, ...)\*(C'\fR 与\*(C`open( *{'zzz'}, ...)\*(C'\fR 等价。\*(C`use strict 'refs'\*(C'\fR 禁止了这样做。
+注意如果使用了初始化的标量,那么结果会有不同:`my $fh='zzz'; open($fh, ...)'\fR 与`open( *{'zzz'}, ...)'\fR 等价。`use strict 'refs''\fR 禁止了这样做。
 .PP
 另一个创建匿名句柄的方法是用Symbol 模块或IO::Handle 模块或诸如此类的东西. These modules have the advantage of not hiding different types of the same name during the local(). 在 open() in the perlfunc manpage 的文末有个例子.(译者注:说实话,对匿名句柄我现在也是一头雾水,翻译的不当之处,请高手指出.)
 .SH "SEE ALSO 参见"

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/chinese/manpages-zh.git



More information about the Chinese-commits mailing list