PERLDATA 7

中文man手册

PERLDATA

NAME
DESCRIPTION æè¿°
Variable names åéå
Context ä¸ä¸æ
Scalar values æ é
Scalar value constructors æ éæ°æ®æé
List value constructors åè¡¨å¼æé
Subscripts 䏿
Slices çæ®µ
Typeglobs and Filehandles å¨å±ç±»ååæä»¶å¥æ
SEE ALSO åè§
䏿çç»´æ¤äºº
ä¸æçææ°æ´æ°
䏿æå页翻è¯è®¡å
è·

NAME

perldata- Perl æ°æ®ç±»å

DESCRIPTION æè¿°

Variable names åéå

Perl æä¸ç§åå»ºçæ°æ®ç±»åï¼æ éï¼æ°ç»åå³èæ°ç»ï¼å³“åå¸è¡¨ï¼ hash”ï¼ãæ°ç»ä»¥æ°å为索å¼ï¼é常以0å¼å§ï¼ååºæåãåå¸è¡¨ä»¥ä¸å¼ç¸å³è çå- 符串为索å¼ï¼å鍿忝æ åºçã

å¼é常éè¿ä¸ä¸ªåéåï¼æåéåçå¼ç¨ï¼æ¥å¼ç¨ãåéåçåç¼å符æ¾ç¤ºäºå¼ç æ°æ®ç±»åãå¶ä½é¨åææäºå¼ç¨çæ¯åªä¸ä¸ªç¹å®çå¼ãé常åé忝ä¸ä¸ªå¯ä¸çæ è¯ç¬¦ï¼ä»¥åæ¯æä¸å线å¼å§ï¼åæ¬åæ¯ãä¸åçº¿åæ°åãæäºæåµä¸ï¼ä¹å¯ä»¥æ¯ä»¥ ‘::’ åéçä¸ä¸²æ è¯ç¬¦(æèæ¯è¿æ¶ç‘’’)ï¼é¤äºæåä¸ ä¸ªï¼å¶å®é½æ¯ååï¼ç¨æ¥å®ä½æåä¸ä¸ªæ è¯ç¬¦æå¨çä½ç½®(详æåè§ perlmod ä¸ç Packages)ãå¯ä»¥ç¨ä¸ä¸ªç®åçæè¯ç¬¦æ¥æ¿ä»£å®ï¼å©ç¨å¼ç¨å°±å¯ä»¥ã䏿æè¯¦è¿°ï¼ ä¹å¯åè§ perlref .

Perl 乿å建çåéï¼å¶åç§°ä¸éµå¾ªè¿ä¸è§åãå®ä»¬åç§°å¤æªï¼è¿æ·å¯ä»¥é¿åä¸ä½çåéåå²çªã模å¼å¹éä¸- 被å¹éå°çå符串æ¯ä»¥‘$’ å ä¸ä¸ªæ°åçåé忥忾ç(åè§ the perlop manpage å the perlre manpage)ã å¦å¤ï¼è¿æå ä¸ªä½¿ä½ å¯ä»¥ä»å¥perl åé¨å·¥ä½çç¹æ®åéï¼å¶åç§°ä¸å嫿 ç¹åæ§å¶å符ï¼åè§ perlvar ï¼

æ é以 ’$’å¼å§, å³ä½¿å®æ¯æ°ç»æåå¸çåç´ ä¹æ¯å¦æ¤ãå¯ä»¥æ ’$’ ç解为‘s’ ï¼è¡¨ç¤ºscalarï¼æ éï¼ãï¼è¯èæ³¨ï¼æ¤å¤æ ¹æ®æå³ææ¡£ï¼åäºæ¹å¨ï¼ä¸é¢ç@å¤ä¹ æ¯è¿æ ·ï¼

$days # ç®åæ é "days"
$days[28] # æ°ç» @daysç第29个åç´
$days{’Feb’} # åå¸ %daysç ‘Feb’ æå¯¹åºçå¼
$#days # æ°ç» @daysçæåä¸ä¸ªåç´ çç´¢å¼å¼

æ´ä¸ªæ°ç»ï¼ææ°ç»ååå¸çå±é¨ï¼ä»¥ ’@’å¼å§, å®ç±»ä¼¼è±æä¸ç“these” æ“those” (è¿äº...é£äº...)ï¼è¡¨ç¤ºæææå¤ä¸ªå¼ã

@days # ($days[0], $days[1],... $days[n])
@days[3,4,5] # å³ ($days[3],$days[4],$days[5])
@days{’a’,’c’} # å³ ($days{’a’},$days{’c’})

æ´ä¸ªåå¸ä»¥ ’%’ å¼å§:

%days # (key1, val1, key2, val2 ...)

å¦å¤ï¼åç¨åºä»¥’&’æ¥è¡¨ç¤º, 使æ¶å¨ä¸å¼èµ·è¯¯è§£çæåµä¸ä¹å¯ä»¥ä¸ç¨, 就象 “do” å¨è±è¯ä¸å¸¸å¸¸çç¥ä¸æ ·ã 符å·è¡¨é¡¹ä»¥ ’*’ ä½ä¸ºå¼å§å符, ä¸è¿ä½ ç°å¨è¿ä¸ç¨å³å¿è¿ä¸ª (if ever ;-)

æ¯ä¸ç§æ°æ®ç±»å齿å®èªå·±çåå- 空é´ï¼å¸¸éæ è¯ç¬¦ä¹ä¸æ ·ãè¿æå³çä½ å¯ä»¥ä½¿ç¨ åä¸ä¸ªåå- æ¥å½åæ éãæ°ç»ãåå¸ãæä»¶å¥æãç®å½å¥æãåç¨åºãæ ¼å¼ææ ç¾ã å³$foo å@foo æ¯ä¸åçåéãä¹å³æå³ç$foo[1] æ¯ @foo çä¸é¨å, è䏿¯$fooçä¸é¨å. è¿çæ¥æäºæªå¼ï¼ä¸è¿å¾ æ£å¸¸ï¼å ä¸ºå®æ¬æ¥å°±æªå¼ã

å ä¸ºåéå以 ’$’, ’@’, æ ’%’å¼å§, ä¿çè¯å¯¹åéæ²¡æä»ä¹å½±åãä¿çè¯å½±å çæ¯æ ç¾åæä»¶å¥æï¼å ä¸ºå®ä»¬ä¸æ¯ä»¥ç¹æ®å符åç¼å¼å§çãä½ ä¸è½ç¨“log” æ¥å½åæä»¶å¥æï¼å ä¸ºå®æ¯ä¿çè¯ï¼æç¤ºï¼ä½ å¯ä»¥ç¨ ‘open(LOG,’logfile’)’ è䏿¯ ‘open(log,’logfile’)’). 使ç¨å¤§åçæä»¶å¥ææ¢å¢å äºå¯è¯»æ§ï¼ ååå°äºå²çªçåçã大å°åæ¯ææä¹ç--“ FOO ”,“Foo”, å“foo” æ¯ä¸åçåç§°ã以å- æ¯æä¸å线å¼å§çåç§°å¯ä»¥å嫿°ååä¸å线ã

å¯ä»¥ç¨ä¸ä¸ªè¿åç¸å³å¼ç¨çè¡¨è¾¾å¼æ¥æ¿æ¢è¿æ ·çåéåãåè§ perlref

以æ°åå¼å§çåéååªè½å嫿°åã䏿¯ä»¥åæ¯ãä¸åçº¿ææ°åå¼å§çåéååªè½ 嫿ä¸ä¸ªå- 符ï¼å¦ï¼$% æ$$. (大é¨åè¿æ ·çåéé½æç¹æ®çæ ä¹ãä¾å¦ï¼$$ æ¯å½åè¿ç¨çidã)

Context ä¸ä¸æ

å¨ Perl ä¸ææ¶æä½æå¼çæä¹åå³äºè¯¥æä½æå¼æå¤çä¸ä¸æãæä¸¤ä¸ªä¸»è¦çä¸ ä¸æï¼åè¡¨åæ éä¸ä¸æãç¸å½ä¸é¨åæä½å¨éè¦å表çä¸ä¸æä¸è¿åå表ï¼å¨é è¦æ éçä¸ä¸æä¸è¿åæ éãè¿å¨æå³è¯¥æä½çææ¡£ä¸ä¼æå°ãæ¢å¥è¯è®²ï¼Perlä¼ éè½½è¿äºæä½ç¬¦ãè±è¯ä¸çæäºè¯ï¼å¦‘fish’å‘sheep’䏿¤ç±»ä¼¼ã

æä½å¯ä»¥æ ¹æ®ä¸åçä¸ä¸æè¿åä¸åçå¼ãä¾å¦ï¼å¦æè¿æ ·åï¼

int( <STDIN> )

integer æä½æä¾æ éä¸ä¸æç» <> æä½ç¬¦, <> ä¼ä»STDIN 读å¥ä¸è¡è¿åç» integer æä½ï¼ç¶åå®è¿åå¶ä¸çæ´åéãä½å¦æä½ è¿æ ·åï¼

sort( <STDIN> )

sortæä½æä¾å表ä¸ä¸æç»<>, <>ä¼è¯»å¥STDINä¸- çæ¯ä¸è¡ç´å°ç»æï¼ç¶åå°å¶ä¼ éç»sortï¼sortç¶åå°å¶æåºè¾åºã

èµå¼æ¯è¾ç¹æ®ï¼å·¦ä¾§çåæ°å³å®äºå³ä¾§çåæ°çä¸ä¸æãèµå¼ç»æéï¼åå³ä¾§åæ°çä¸ä¸ææ¯æéä¸ä¸æï¼èµå¼ç»æ°ç»æåå¸ï¼åå³ä¾§åæ°çä¸ä¸ææ¯å表ä¸ä¸æãèµå¼ç»åè¡¨ï¼æçæ®µï¼å¶å®ä¹æ¯å表ï¼ï¼å³ä¾§çä¸ä¸æä¹æ¯å表ä¸ä¸æã

å½ä½ ä½¿ç¨‘use warnings’ ç¼è¯æç¤ºæ Perl ç-w åæ°æ¶ï¼ ä½ å¯è½ä¼çå°è¿æ ·çè¦åï¼å¨“æ æçä¸ä¸æï¼void context” ä¸ä½¿ç¨äºå¸¸é æå½æ°ãæ æä¸ä¸æçæææ¯å¼è¢«ä¸¢å¼ä¸ç¨ï¼æ¯å¦åªå嫿"fred";
çè¯å¥; ææ¯‘getpwuid(0);’;. å¨è¦æ±å表ä¸ä¸æç彿° 被æ éä¸ä¸æç¯å¢è°ç¨æ¶,ä¹ä¼åºç°è¿ä¸ªè¦å.

ç¨æ·å®ä¹çåç¨åºå¯è½ä¼éè¦æ¥çä¸ä¸ææ¯æ æï¼æ éï¼è¿æ¯å表ãä¸è¿ï¼å¤§å¤æ°å¹¶ ä¸éè¦è¿ä¹åãå ä¸ºæ éåå表ä¼èªå¨æå¥å°ä¸ä¸ªå表ä¸ãåè§ perlfunc ä¸ç “wantarray” 以äºè§£å¦ä½è¾¨æä½ ç彿°è°ç¨æ¶çä¸ä¸æã

Scalar values æ é

Perl ä¸çæææ°æ®é½æ¯æ é, æ éçæ°ç»,æ éçåå¸. æ éå¯ä»¥æ¯ä¸ç§ä¸åçå¼: æ°å, å- 符(串), å¼ç¨. é常, ä¸åå¼ä¹é´çè½¬æ¢æ¯éæç. è½ç¶ä¸ä¸ªæ éä¸å¯è½æå¤ä¸ªå¼, 使¯å®å¯ä»¥æ¯ä¸ä¸ªåå«å¤ä¸ªå¼çæ°ç»æåå¸çå¼ç¨.

æ éä¸ä¸å®éæ¤å³å½¼. ä¸éè¦å£°æåéçç±»åæ¯"å符串","æ°å","å¼ç¨"æå¶å®ä»ä¹. å ä¸ºæ éä¼èªå¨è½¬æ¢, æä»¥å¶ç±»åä¸ç¨å³å¿. Perl æ¯ä¸ä¸æå¤å½¢è¯- è¨,å®çæ éå¯ä»¥æ¯å符串,æ°åæå¼ç¨(åæ¬å¯¹è±¡). å¶ä¸åç¬¦ä¸²åæ°å- å¨å¤§å¤æ°æåµä¸å¹¶æ²¡æä»ä¹ä¸å, å¼ç¨æ¯å¼ºåç,ä¸å¯åç带æå建å¼ç¨è®¡æ°åææå¨çæé.

æ éå¨ä¸æ¯ç©ºåç¬¦ä¸²åæ°å0çæ¶å被解é为ç TRUE. å¸å°ä¸ä¸ææ¯è¿æ ·ä¸ç§ä¸ä¸æ, è¿æ¶ä¸ä¼åçæ°åæå符串çèªå¨è½¬æ¢.

æä¸¤ç§ç©ºå符串(ææ¶ä»¥"empty"表示), å®ä¹äºçåæªå®ä¹ç. å®ä¹äºç空å- 符串就æ¯é¿åº¦ä¸ºé¶çå符串,å¦"". æªå®ä¹ç空å- 符串æ¯ä¸ä¸ªå¼,è¿ä¸ªå¼è¡¨ç¤ºæäºç©å¹¶æ²¡æçå®å¼ä¸å®å¯¹åº, æ¯å¦åºé, æå°è¾¾æä»¶å°¾, æèä½ å¼ç¨ä¸ä¸ªæªå®ä¹çæ°ç»æåå¸çåç´ æ¶,é½ä¼è¿åä¸ä¸ªæªå®ä¹ç空å符串. è½ç¶å¨æ©æPerl ä¸,å¨è¦æ±å·²å®ä¹åéçä¸ä¸æä¸- ä½¿ç¨æªå®ä¹çåéå¯ä»¥ä½¿å¾è¯¥åéå¾å°å®ä¹, ç°å¨å´åªæå¨ç¹æ®çæåµä¸æä¼åºç°è¿ç§ç»æ,åè§the perlref manpage. å¯ä»¥ç¨defined() 彿°æ¥æ£æµæ éæ¯å¦å·²ç»å®ä¹(对æ°ç»åå叿 æ),ä¹å¯ä»¥ç¨undef() å»é¤å¯¹åéçå®ä¹.

è¦å¼æ¸æ¥ä¸ä¸ªå符串æ¯å¦æ¯ææçé0æ°å,åªè¦ç宿¯ä¸æ¯æ°å0å忝“0” 就足å¤äº(ä¸è¿è¿å¨ä½¿ç¨-wåæ°æ¶,伿¾ç¤ºè¦å). å ä¸ºéæ°åçå符串被çä½0, ä¸awkä¸ç¸ä¼¼:

if ($str == 0 && $str ne "0") {
warn "That doesn’t look like a number";
}

è¿ç§æ¹æ³å¯è½æ¯æå¥½ç,å ä¸ºå¦è¥ä¸ç¶ä½ ä¸ä¼æ£ç¡®å¯¹å¾ IEEE çæ³¨é,æ¯å¦‘NaN’ åæ ç©·å¤§. å«çæ¶å, ä½ å¯è½æ´æ¿æç¨POSIX::strtod() 彿°ææ¯æ- £åè¡¨è¾¾å¼æ¥æ£æµå符串æ¯å¦è½ç¨åæ°å(åè§perlre).

warn "has nondigits" if /\D/;
warn "not a natural number" unless /ˆ\d+$/; # rejects -3
warn "not an integer" unless /ˆ-?\d+$/; # rejects +3
warn "not an integer" unless /ˆ[+-]?\d+$/;
warn "not a decimal number" unless /ˆ-?\d+\.?\d*$/; # rejects .2
warn "not a decimal number" unless /ˆ-?(?:\d+(?:\.\d*)?|\.\d+)$/;
warn "not a C float"
unless /ˆ([+-]?)(?=\d|\.\d)\d*(\.\d*)?([Ee]([+-]?\d+))?$/;

æ°ç»çé¿åº¦æ¯æ é. éè¿$#daysä½ å¯ä»¥ç¥é@daysçé¿åº¦. ææ¯ä¸è®²,è¿ä¸æ¯æ°ç»çé¿åº¦; èæ¯æåä¸ä¸ªåç´ ç䏿 ,å ä¸ºç¬¬ä¸ä¸ªåç´ ç䏿 æ¯0. 对$#days èµå¼ä¼æ¹åæ°ç»çé¿åº¦. 以è¿ç§æ¹å¼åå°æ°ç»çè¯, ä¼ç ´åå¶ä¸çå¼, åå¢å å¶é¿åº¦ä¹ä¸è½æ¢å¤. (Perl 4䏿¯å¯ä»¥ç, æä»¬æ¹åäºå®ä»¥ç¡®ä¿ææå¨è¢«åæ¶è°ç¨.)

ä½ å¯ä»¥ä½¿ç¨ä¸äºå°æå·§æ¥é¢æ©å±ä¸ä¸ªæ°ç»(妿你ç¥éå®å°ä¼åå¾å¾å¤§çè¯). å¯ä»¥ç¨ç»è¶åºæ°ç»èå´çåç´ èµå¼çæ¹æ³æ©å±æ°ç». å¯ä»¥ç»æ°ç»èµå¼ä¸ä¸ªç©ºå表以æ¸ç©ºæ°ç». ä¸é¢è¯å¥çä»·:

@whatever = ();
$#whatever = -1;

æ°ç»å¤äºæ éä¸ä¸æä¸æ¶, è¿å弿¯æ°ç»çé¿åº¦. (åè¡¨å¨æ éä¸ä¸æä¸- ,è¿å弿¯å表çæåä¸ä¸ªåç´ ,忝Cä¸çéå·æä½ç¬¦, èåå»ºå½æ°çè¿åå¼ç±å®ä»¬èªå·±å³å®.) 以ä¸è¯å¥ä¸ºç:

scalar(@whatever) == $#whatever - $[ + 1;

Perl 5 æ¹åäº$[ çæä¹: ä¸å¿æå¿å«çç¨åºæ¹åäº$[ çå¼. (æ¢è¨ä¹,䏿¨è使ç¨$[ ) æä»¥,å¯ä»¥åæè¿æ ·:

scalar(@whatever) == $#whatever + 1;

æäºç¨åºåä¸ºäºæç¡®èµ·è§, ä¼ä½¿ç¨æ¾å¼ç转æ¢:

$element_count = scalar(@whatever);

å½åå¸å¤äºæ éä¸ä¸æä¸æ¶, 妿åå¸ä¸ºç©º, è¿åå¼ä¸ºå, 妿é空, è¿åå¼ä¸ºç; è¯´å¾æ´ç²¾ç¡®äº, è¿å弿¯ä¸ªå符串, ç±å·²ç»ä½¿ç¨çå卿®µååéçå¨é¨å- 卿®µç»æ,äºèä¹é´ä»¥ææ åé. è¿å¯ä»¥ç¨æ¥åæ Perlçåå¸ç®æ³ç好å. ä¾å¦, ä½ çåå¸ä¸æ10,000个åç´ ,使¯%HASH çæ éå¼ä¸º"1/16", å说æä»ç¨å°äº16个å- 卿®µä¸çä¸ä¸ª, ä¹è®¸10,000个åç´ é½å¨è¿ä¸ä¸ªå卿®µä¸. æå¥½ä¸è¦åçè¿ç§æåµ.

ä½ å¯ä»¥é¢å为åå¸åé空é´, è¿è¦ä½¿ç¨ç»keys() 彿°èµå¼çæ¹æ³æ¥å®ç°. å®éåéçç©ºé´æ¯å¤§äºæç»å¼çäºçå¹ï¼

keys(%users) = 1000; # åé 1024 空é´

Scalar value constructors æ éæ°æ®æé

æ°å¼å¸¸éæä»¥ä¸æµ®ç¹åæ´æ°æ ¼å¼:

12345
12345.67
.23E-10 # a very small number
3.14_15_92 # a very important number
4_294_967_296 # underscore for legibility
0xff # hex
0xdead_beef # more hex
0377 # octal
0b011011 # binary

卿°å常éä¸å¯ä»¥å¨æ°åé´æå¥ä¸å线æ¥å¢å å¯è¯»æ§ãä¾å¦ï¼å¯ä»¥ä¸ä½ä¸ç» (Unix æ ·å¼çåç»ï¼ä¾å¦ 0b110_110_100)ï¼æèåä½ä¸ç» (æ¥è¡¨ç¤º nibblesï¼ä¾å¦ 0b1010_0110)ï¼æèå¶ä»åç»ã

å符串é常以åå¼å·æåå¼å·æ¬èµ·. 䏿 åUnix shellsä¸çå¼å·ç¸ä¼¼: åå¼å·å¯ä»¥æ¥æ¶è½¬ä¹ååé; åå¼å·ä¸å¯ä»¥ (é¤äº‘\’’ å‘\\’)). C æ ·å¼ç转ä¹å- 符å¯ä»¥ç¨æ¥è¾å¥æ°è¡ï¼è·³æ ¼çå符ï¼è½¬ä¹å符çå表å¯ä»¥åè§ perlop ä¸- ç“Quote and Quote-like Operators”

ååè¿å¶,å«è¿å¶,æäºè¿å¶ä»¥å- 符串形å¼è¡¨ç¤º(å¦:’0xff’),ä¸è½èªå¨è½¬æ¢ä¸ºåè¿å¶å½¢å¼. hex() å oct() 彿°å¯ä»¥å®ç°è½¬æ¢. åè§ perlfunc ä¸ç hex å oct äºè§£è¯¦æ.

å¯ä»¥å¨å符串ä¸ç´æ¥å å¥æ°è¡. å符串ä¸çåéåªè½æ¯æ é,æ°ç»åæ°ç»æåå¸ççæ®µ (æ¢è¨ä¹, 以$æ@å¼å§, åè·ä¸æ .). 以ä¸è¯å¥æå°‘‘The price is $100.’’

$Price = ’$100’; # not interpolated
print "The price is $Price.\n"; # interpolated

perl 䏿²¡æ double interpolationï¼å æ¤$100 ä¿æä¸åã

æ£å¦å¨æäºshellä¸ä¸æ ·, ä½ å¯ä»¥ç¨è±æ¬å·æ¬èµ·åéå, 以便åºååéååå¶åçå- æ¯åä¸å线. 妿è¦å°ä¸ä¸ªåéæ¹å为å- 符串æ¶ï¼å¿é¡»è¿æ·åï¼ä»¥é¿åä¸åé¢çååå·æåå¼å·è¿æ¥èµ·æ¥ï¼å¦åä¼è¢«å½ä½ååï¼

$who = "Larry";
print PASSWD "${who}::0:0:Superuser:/:/bin/perl\n";
print "We use ${who}speak when ${who}’s here.\n";

å¦ææ²¡æè±æ¬å·, Perlä¼å¯»æ¾ $whospeak, $who::0, å $who’s åé. å两个æ¯ä¸åå¨ç who åä¸ç$0 å $s.

å®éä¸, è±æ¬å·ä¸çæ è¯ç¬¦å¿é¡»æ¯å符串, åå¸ç䏿 ä¹å¿é¡»æ¯å符串. é½ä¸éè¦å¼å·, åé¢çä¾å$days{’Feb’} å¯ä»¥åä½ $days{Feb} å¼å·ä¼èªå¨å ä¸. 使¯ä¸æ ä¸çå¶å®å¤æå容被解é为表达å¼.

Version Strings

注æ: Version Strings (v-strings) have been deprecated. They will not be available after Perl 5.8. The marginal benefits of v-strings were greatly outweighed by the potential for Surprise and Confusion.

类似‘v1.20.300.4000’ è¿æ ·çå½¢å¼è¢«è§£é为ä¸ä¸ªå符串. è¿ç§å½¢å¼ç§°ä¸º v-stringsï¼æä¾äºæ´æè¯»çæ¹æ³æ¥æé å- ç¬¦ä¸²ï¼æ¯èµ·"\x{1}\x{14}\x{12c}\x{fa0}" æ´å æè¯». è¿å¨è¡¨ç¤º Unicode å符串æ¶å¾æç¨, å¨ä½¿ç¨å符串æ¯è¾å½ä»¤(‘cmp’,‘gt’,‘lt’ ç- )æ¯è¾çæ¬å·æ¶ä¹é常æç¨. 妿å¶ä¸çç¹å·å¤äºä¸¤ä¸ª, åå¼å§ç‘v’ å¯ä»¥çç¥.

print v9786; # prints UTF-8 encoded SMILEY, "\x{263a}"
print v102.111.111; # prints "foo"
print 102.111.111; # same

è¿ç§å½¢å¼å¯ä»¥ç¨äºrequire å use ä¸ä½çæ¬æ£æ¥.“$ˆV” ç¹æ®åéä¸- çPerlçæ¬å·å°±æ¯ä»¥è¿ç§å½¢å¼ä¿åç. åè§ perlvar ä¸ç“$ˆV” 注æä½¿ç¨ v-strings æ¥ä¿å IPv4 å°åæ¯ä¸å¯ç§»æ¤çï¼é¤éåæ¶ä½¿ç¨ Socket åçinet_aton()/inet_ntoa() 彿°ã

注æä» Perl 5.8.1 å¼å§å个æ°åç v-strings (类似‘v65’) 妿卑=>’ æä½ç¬¦(éå¸¸ç¨æ¥ä» hash å¼ä¸åºåå¼ hash é®) ä¹åï¼ä¸æ¯ä¸ä¸ª v-stringsï¼èæ¯è§£é为å符串 (’v65’)ãå¨ Perl 5.6.0 å° Perl 5.8.0 å®ä¸ç´æ¯ v-stringsï¼ä½æ¯è¿æ ·å¸¦æ¥äºæ´å¤æ··æ·åé误è䏿¯ä¼ç¹ãå¤ä¸ªæ°åç v-stringsï¼ç±»ä¼¼‘v65.66’ å65.66.67ï¼ç»§ç»æ»æ¯è¢«å½ä½ v-strings

ç¹æ®å¸¸é

ç¹æ®åé __FILE__, __LINE__, å __PACKAGE__ 代表å½åæä»¶å,è¡å·,ååå. å®ä»¬åªè½ä½ä¸ºåç¬çç¬¦å·æ¥ä½¿ç¨; ä¸è½ç¨äºå符串ä¸åæ. å¦ææ²¡æå½åå(稑package;’ æä»¤æ¥å®ç°), å__PACKAGE__ æ¯ä¸ä¸ªæªå®ä¹çå¼.

æ§å¶å符 ˆD å ˆZ, 以å __END__ å __DATA__ åéå¯ä»¥è¡¨ç¤ºæä»¶çé»è¾ç»æ. å¶åçææ¬è¢«å¿½ç¥.

__DATA__ ä¹åçææ¬å¯ä»¥éè¿æä»¶å¥æ‘PACKNAME::DATA’ 读å,‘PACKNAME’ æ¯ __DATA__ æå¨çåçåç§°. 奿æå__DATA__ åé¢çææ¬. 读åç»æç¨åºä¼èªå¨å³é- è¯¥å¥æ‘close DATA’. 为äºä¸ __DATA__ è¿æ²¡æåºç°ä»¥åå·²ç»åå¨çç¨åºå¼å®¹, __END__ å¨é¡¶çº§èæ¬ä¸ä¸ __DATA__ æ§è´¨ç¸å(å¨ç¨‘require’ æ‘do’ è°ç¨æ¶æ¯ä¸åç) ä¸è¿å¯ä»¥éè¿‘main::DATA’ æ¥è°ç¨å¶ä¸çå容.

åè§ SelfLoader 详ç»äºè§£ __DATA__, å¶ä¸è¿æä¾å. è¦æ³¨æå¨BEGIN åä¸- æ æ³è¯»åDATA奿: å ä¸ºBEGIN åå¨ç¼è¯æ¶å³è¢«æ§è¡, èæ¤æ¶ __DATA__ (æ __END__) è¿æªè¢«ç¨åºçå°.

裸è¯

卿æ³ä¸æ²¡æç¹æ®æä¹çè¯è¯é½è¢«çä½å符串. ç§°ä¹ä¸º "裸è¯". åæä»¶å¥æä»¥åæ ç¾ä¸æ ·, ä»åå«å°å忝çè£¸è¯æå¯è½å¨å°æ¥ä¸ç¨åºä¸- çä¿çè¯åçå²çª, å®éä¸,å½ä½ ä½¿ç¨‘use warnings’ è¯å¥,ææ¯-w é项æ¶, Perlä¼å¯¹æ¤æåºè¦å. ä¸äºäººå¯è½å¸æå®å¨ç¦æ¢è¿æ ·çè¯. 妿æå¦ä¸è¯å¥:

use strict ’subs’;

é£ä¹ä¸è½è¢«è§£é为åç¨åºç裸è¯ä¼å¼èµ·ç¼è¯æ¶é误. è¿ç§éå¶å°åç»ææ¶ç»æ¢. èåé¨çåå¯ä»¥æ¤æ¶è¿ä¸éå¶, 稑no strict ’subs’’

æ°ç»åå¹¶åé符

æ°ç»ååºå被å并为åå¼å·å¼ç¨çå符串æ¶ï¼ä»¥åé$" æå®çå¼ (妿æå®äº“use English;” é£ä¹æ¯$LIST_SEPARATOR çå¼) ä½ä¸ºåé符ï¼é»è®¤æ¯ç©ºæ ¼ãä¸åè¯- å¥çä»·ï¼

$temp = join($", @ARGV);
system "echo $temp";

system "echo @ARGV";

å¨æç´¢æ¨¡å¼ä¸(å¨åå¼å·å符串ä¸ä¹æ¯)æä¸ä¸ªææ··æ·ä¹å¤:‘/$foo[bar]/’ åºè¯¥æ¯‘/${foo}[bar]/’ (‘[bar]’ æ¯æ£å表达å¼çå符类) è¿æ¯‘/${foo[bar]}/’/ (‘[bar]’ æ¯æ°ç»@foo ç䏿 ) å¢? 妿@foo ä¸åå¨, é£å¾ææ¾å®åºè¯¥æ¯å符类. 妿@foo åå¨, Perl ä¼å°½åçæµ‘[bar]’ çå«ä¹, ä¸å®å ä¹æ»æ¯å¯¹ç. 妿å®çéäº, æèä½ æ¯è¾åæ§, ä½ å¯ä»¥ä½¿ç¨è±æ¬å·.

here-document çè¯æ³å·²ç»è¢«ç§»å¨å° perlop ä¸ç“Quote and Quote-like Operators”

List value constructors åè¡¨å¼æé

å表æ¯ç¨éå·åå¼çå个å¼ç»æç(妿ä¼å级éè¦çè¯,å¤é¢è¿è¦ç¨åæ¬å·åå´):

(LIST)

å¨ä¸éè¦å表çä¸ä¸æä¸, å表ç弿¯æåä¸ä¸ªåç´ çå¼, è¿ä¸Cä¸çéå·æä½ç¬¦ç±»ä¼¼. ä¾å¦:

@foo = (’cc’, ’-E’, $bar);

å°å表èµç»æ°ç»@foo, 使¯

$foo = (’cc’, ’-E’, $bar);

å°$bar çå¼èµç»$foo. 注æ, æ°ç»å¨æ éä¸ä¸æä¸ç弿¯æ°ç»çé¿åº¦; ä¸ä¾å°3èµç»$foo:

@foo = (’cc’, ’-E’, $bar);
$foo = @foo; # $foo gets 3

å表çæåå¯ä»¥è¾å¥éå·, æä»¥è¿æ ·ä¹æ¯æ£ç¡®ç:

@foo = (
1,
2,
3,
);

è¦å°here-document èµç»æ°ç», ä¸è¡ä½ä¸ºä¸ä¸ªåç´ , å¯ä»¥è¿æ ·ä½:

@sauces = <<End_Lines =˜ m/(\S.*\S)/g;
normal tomato
spicy tomato
green chile
pesto
white wine
End_Lines

å表ä¼èªå¨æå¥åå表. ä¹å³, ä¸ä¾å°å±å¼æ°ç»,åå¸ç, å¹¶å°å¶ä¸- çæ¯ä¸ä¸ªåç´ ä½ä¸ºè¯¥æ°å表çä¸ä¸ªåç´ . æ°ç»æåå¸å¤±å»å¶åæ¥ç身份.å表

(@foo,@bar,&SomeSub,%glarch)

忬@foo,@barçæ¯ä¸ä¸ªåç´ ,忬彿° SomeSub è¿åå¼åè¡¨çæ¯ä¸ä¸ªåç´ , 忬 %glarch çæ¯ä¸ä¸ªåå¼å¯¹. è¦æ³ä½¿ç¨ä¸åæçå表, å¯ä»¥åè§ perlref

空å表å¯ä»¥è¡¨ç¤ºä¸º(). å¨åè¡¨ä¸æå¥ç©ºå表没ææä¹. ((),(),()) ä¸()ç¸å. åæ ·, åæä¸ä¸ªç©ºæ°ç»ä¹æ²¡ææä¹.

åå¹¶çè¯æ³è¡¨ç¤ºå¼å鿬å·é½æ¯å¯éç (é¤é为表示ä¼å级éè¦)ï¼èå表å¯ä»¥ä»¥å¯éçéå·ç»æè¡¨ç¤ºå表ä¸- çå¤ä¸ªéå·æ¯åæ³çè¯æ³ãå表‘1,,3’ æ¯ä¸¤ä¸ªå表ç并置11,’ è¿æ3, 第ä¸ä¸ªä»¥å¯éçéå·ç»æã‘1,,3’ 毑(1,),(3)’ 乿¯‘1,3’ (类似ç11,,,3’ 毑(1,),(,),3’ 乿¯‘1,3’ çç) ä¸è¿æä»¬ä¸å»ºè®®ä½ ä½¿ç¨è¿ä¹æ··ä¹±çåæ³

å表ä¹å¯ä»¥è±¡æ°ç»ä¸æ ·ä½¿ç¨ä¸æ . 为äºé¿åæ§ä¹éè¦å¨å表å¤ä½¿ç¨æ¬å·. ä¾å¦:

# Stat returns list value.
$time = (stat($file))[8];

# SYNTAX ERROR HERE.
$time = stat($file)[8]; # OOPS, FORGOT PARENTHESES

# Find a hex digit.
$hexdigit = (’a’,’b’,’c’,’d’,’e’,’f’)[$digit-10];

# A "reverse comma operator".
return (pop(@foo),pop(@foo))[0];

å¯ä»¥ç»å表èµå¼, å½ç¶å表ä¸çæ¯ä¸ªåç´ å¿é¡»åæ³æè¡:

($a, $b, $c) = (1, 2, 3);

($map{’red’}, $map{’blue’}, $map{’green’}) = (0x00f, 0x0f0, 0xf00);

ç¹ä¾æ¯å¯ä»¥èµå¼ä¸º‘undef’ãå½å¿½ç¥ç¨åºçæäºè¿å弿¶è¿å¾æç¨:

($dev, $ino, undef, undef, $uid, $gid) = stat($file);

å表èµå¼å¤äºæ éä¸ä¸æä¸æ¶, è¿å弿¯çå·å³ä¾§ç表达å¼çå素个æ°:

$x = (($foo,$bar) = (3,2,1)); # set $x to 3, not 2
$x = (($foo,$bar) = f()); # set $x to f()’s return count

è¿å¨å¸å°ä¸ä¸æä¸å¾æ¹ä¾¿, å ä¸ºå¤æ°åè¡¨å½æ°å¨ç»ææ¶è¿å空å表, è¿æ¶å表èµå¼ä¼è¿å0, 被解é为FALSE.

å®ä¹æ¯ä¸ä¸ªæç¨çä¹ æ¯çæ¥æºï¼å°±æ¯å¨å表ä¸ä¸æä¸- æ§è¡ä¸ä¸ªå½æ°ææä½ï¼ç¶åè®°å½è¿åå¼ç个æ°ï¼æ¹æ³æ¯ä¸ºä¸ä¸ªç©ºå表èµå¼ï¼ç¶å卿éä¸ä¸æä¸- 使ç¨è¿ä¸ªå¼ãä¾å¦ï¼å¦ä¸ä»£ç ï¼

$count = () = $string =˜ /\d+/g;

å°ç½®$count 为$string 䏿¾å°çæ°å- ç»æ°éãè¿æ ·è½è¡çåå æ¯æ¨¡å¼å¹éæ¯å表ä¸ä¸æ (å ä¸ºå®è¢«èµäºä¸ä¸ªç©ºå表)ï¼å æ¤è¿åææå¹éé¨åçå表ã卿 éä¸ä¸æä¸- çå表èµå¼å°å®è½¬æ¢ä¸ºåç´ çä¸ªæ° (è¿éæ¯æ¨¡å¼è¢«å¹éçæ°é)ï¼ç¶åèµå¼ç»$countãæ³¨æç®åå°ä½¿ç¨

$count = $string =˜ /\d+/g;

没æä½ç¨ï¼å ä¸ºå¨æ éä¸ä¸æä¸ç模å¼å¹éåªä¼è¿å true æ falseï¼è䏿¯ææçå¹éã

æåä¸ä¸ªåç´ å¯ä»¥æ¯æ°ç»æåå¸:

($a, $b, @rest) = split;
my($a, $b, %rest) = @_;

å½ç¶å¯ä»¥å¨ä»»ä½ä½ç½®ä½¿ç¨æ°ç»æåå¸, ä¸è¿ç¬¬ä¸ä¸ªæ°ç»æåå¸ä¼å°ææçå¼é½æ®ä¸ºå·±æ, å¶å®çåç´ é½ä¼å为undefined.è¿å¨my() æ local()ä¸æè®¸æç¨.

åå¸å¯ä»¥ç¨å«æåå¼å¯¹çå表æ¥åå§å:

# same as map assignment above
%map = (’red’,0x00f,’blue’,0x0f0,’green’,0xf00);

åè¡¨åæ°ç»äº¤äºæ§å¾å¼º, åå¸åä¸ç¶. ä½å¯ä»¥è±¡ä½¿ç¨æ°ç»æ¶ä¸æ·å¯¹å表使ç¨ä¸æå¹¶ä¸æå³çå¯ä»¥è±¡ä½¿ç¨åå¸ä¸æ·ä½¿ç¨å表. åæ ·,å¤äºå表ä¸çå叿»æ¯ä»¥åå¼å¯¹çå½¢å¼å±å¼. å æ- ¤ææ¶ä½¿ç¨å¼ç¨è¦æ´å¥½ä¸äº.

é常å¨åå¼å¯¹ä¸ä½¿ç¨‘=>’ æä½ç¬¦ä¼æ´æè¯».‘=>’ ä¸éå·ä½ç¨ç¸å, ä¸è¿å® è¿æä¸ä¸ªä½ç¨, é£å°±æ¯å¯ä»¥ä½¿å®å·¦ä¾§ç对象被解é为å符串: å¦æè¯¥å¯¹è±¡æ¯è£¸ åçè¯,å°æ¯åæ³çæ è¯ç¬¦ (‘=>’ ä¸å¼ç¨åå«ååå·çå¤åæ è¯ç¬¦). è¿å¨åå§ åå叿¶æ£æäº:

%map = (
red => 0x00f,
blue => 0x0f0,
green => 0xf00,
);

æèåå§ååå¸çå¼ç¨:

$rec = {
witch => ’Mable the Merciless’,
cat => ’Fluffy the Ferocious’,
date => ’10/31/1776’,
};

or for using call-by-named-parameter to complicated functions:

$field = $query->radio_group(
name => ’group_name’,
values => [’eenie’,’meenie’,’minie’],
default => ’meenie’,
linebreak => ’true’,
labels =>\%labels
);

注æåå¸åå§åæ¶ç顺åºåè¾åºæ¶ç顺åºå¹¶ä¸ä¸å®ç¸å. è¦å¾å°é¡ºåºçè¾åºå¯ä»¥åè§ perlfunc ä¸ç“sort”

Subscripts 䏿

æ°ç»å¯ä»¥ç¨ä¸ä¸ªç¾å符å·ï¼å ä¸å®çåå(ä¸åæ¬å导ç‘@’)ï¼å ä¸æ¹æ¬å·åå¶ä¸- åå«ç䏿 æ¥åå¾å¼ãä¾å¦ï¼

@myarray = (5, 50, 500, 5000);
print "Element Number 2 is", $myarray[2], "\n";

æ°ç»ä¸æ ä» 0 å¼å§ãè´å¼ä¸æ è¿åä»å°¾é¨å¼å§æ°çå¼ã卿们çä¾åä¸- ï¼$myarray[-1] å°æ¯ 5000,$myarray[-2] æ¯ 500ã

Hash 䏿 ä¸æ¤ç±»ä¼¼ï¼ä½æ¯ä¸ä½¿ç¨æ¹æ¬å·èæ¯è±æ¬å·ãä¾å¦ï¼

%scientists =
(
"Newton" => "Isaac",
"Einstein" => "Albert",
"Darwin" => "Charles",
"Feynman" => "Richard",
);

print "Darwin’s First Name is ", $scientists{"Darwin"}, "\n";

Slices çæ®µ

é常对å叿æ°ç»ä¸æ¬¡è®¿é®ä¸ä¸ªåç´ . ä¹å¯ä»¥ä½¿ç¨ä¸æ å¯¹å表åç´ è¿è¡è®¿é®.

$whoami = $ENV{"USER"}; # one element from the hash
$parent = $ISA[0]; # one element from the array
$dir = (getpwnam("daemon"))[7]; # likewise, but with list

çæ®µå¯ä»¥ä¸æ¬¡è®¿é®å表,æ°ç»æåå¸ä¸çå ä¸ªåç´ , è¿æ¯éè¿åè¡¨ä¸æ æ¥å®ç°ç. è¿æ¯åå«ååºæ¯ä¸ªå¼è¦æ¹ä¾¿ä¸äº.

($him, $her) = @folks[0,-1]; # array slice
@them = @folks[0 .. 3]; # array slice
($who, $home) = @ENV{"USER", "HOME"}; # hash slice
($uid, $dir) = (getpwnam("daemon"))[2,7]; # list slice

æ¢ç¶å¯ä»¥ç»å表èµå¼, å½ç¶ä¹å¯ä»¥å叿æ°ç»ççæ®µèµå¼.

@days[3..5] = qw/Wed Thu Fri/;
@colors{’red’,’blue’,’green’}
= (0xff0000, 0x0000ff, 0x00ff00);
@folks[0, -1] = @folks[-1, 0];

ä¸é¢çæä½ä¸ä¸åè¯å¥çä»·:

($days[3], $days[4], $days[5]) = qw/Wed Thu Fri/;
($colors{’red’}, $colors{’blue’}, $colors{’green’})
= (0xff0000, 0x0000ff, 0x00ff00);
($folks[0], $folks[-1]) = ($folks[-1], $folks[0]);

æ¢ç¶æ¹åçæ®µå°±ä¼æ¹åæ°ç»æåå¸çåå§å¼, é£ä¹‘foreach’ ç»æå¯ä»¥é¨åæå¨é¨å°æ¹åæ°ç»æåå¸çå¼.

foreach (@array[ 4 .. 10 ]) { s/peter/paul/ }

foreach (@hash{qw[key1 key2]}) {
s/ˆ\s+//; # trim leading whitespace
s/\s+$//; # trim trailing whitespace
s/(\w+)/\u\L$1/g; # "titlecase" words
}

空å表ççæ®µè¿æ¯ç©ºå表, å æ¤:

@a = ()[1,0]; # @a has no elements
@b = (@a)[0,1]; # @b has no elements
@c = (0,1)[2,3]; # @c has no elements

使¯:

@a = (1)[1,0]; # @a has two elements
@b = (1,undef)[1,0,2]; # @b has three elements

ä¸ä¾å©ç¨äºè¿ä¸ç¹æ§,å½è¿å空å表æ¶å¾ªç¯ç»æ¢:

while ( ($home, $user) = (getpwent)[7,0]) {
printf "%-8s %s\n", $user, $home;
}

æä»¬å¨åé¢è¯´è¿, æ éä¸ä¸æä¸çå表èµå¼è¿å弿¯å³ä¾§çå素个æ°. 空å表没æåç´ , æä»¥å½å£ä»¤æä»¶è¯»å®å, è¿å弿¯0è䏿¯2.

为ä»ä¹å¯¹åå¸ççæ®µä½¿ç¨’@’è䏿¯’%’å¢. å ä¸ºæ¬å·çç±»å(æ¹æ¬å·æè±æ¬å·)å³å®äºå®æ¯æ°ç»è¿æ¯åå¸. èæ°ç»æåå¸çå¼å§å- 符(’$’æ’@’)表示è¿å弿¯å个å¼è¿æ¯å¤ä¸ªå¼(å表).

Typeglobs and Filehandles å¨å±ç±»ååæä»¶å¥æ

Perl 使ç¨å«å å¨å±ç±»å çç±»åæ¥æ¯ææ´ä¸ªç¬¦å·è¡¨é¡¹. å¨å±ç±»åçåç¼æ¯*, å ä¸ºå®è¡¨ç¤ºææçç±»å. è¿å¨è¿å»éå¸¸ç¨æ¥ç»å½æ°ä¼ éæ°ç»æåå¸çå¼ç¨, 使¯ç°å¨æäºçæ£çå¼ç¨, è¿å°±å ä¹ä¸éè¦äº.

ç°å¨,å¨å±ç±»åç主è¦ç¨éæ¯å建符å·è¡¨å«å. å¦ä¸èµå¼:

*this = *that;

使å¾$this æä¸º $thatçå«å, @this æä¸º @thatçå«å,%this æä¸º %thatçå«å, &this æä¸º &thatçå«å, çç. 使ç¨å¼ç¨ä¼æ´å®å¨. è¿æ ·:

local *Here::blue =\$There::green;

ææ¶ä½¿ $Here::blue æä¸º $There::greençå«å, ä½ä¸ä¼ä½¿ @Here::blue æä¸º @There::greençå«å, ä¹ä¸ä¼ä½¿ %Here::blue æä¸º %There::greençå«å, çç. åè§ perlmod ä¸ç Symbol Tables æå¤ä¸ªä¾å. çèµ·æ¥å¯è½æäºæªå¼, ä¸è¿è¿å´æ¯æ´ä¸ªimport/exportç³»ç»çåºç¡.

å¨å±ç±»åçå¶å®ç¨éè¿æ, ç»å½æ°ä¼ è¾æä»¶å¥æææ¯å建æ°çæä»¶å¥æ. 妿你è¦ä½¿ç¨å¨å±ç±»åä»£æ¿æä»¶å¥æ, å¯ä»¥è¿æ ·å:

$fh = *STDOUT;

æè使ç¨çæ£çå¼ç¨, è±¡è¿æ ·:

$fh =\*STDOUT;

åè§ perlsub æå³äºé´æ¥å¥æçå¤ä¸ªä¾å.

å¨å±ç±»å乿¯ä½¿ç¨local() å建å±é¨æä»¶å¥æçä¸ç§æ¹æ³. ä½ç¨èå´å¨å½ååä¹å, 使¯å¯ä»¥è¢«ä¼ å.ä¾å¦:

sub newopen {
my $path = shift;
local *FH; # not my!
open (FH, $path) or return undef;
return *FH;
}
$fh = newopen(’/etc/passwd’);

æ¢ç¶æä»¬æ*foo{THING} è¿æ ·çè®°æ³, å¨å±ç±»åä¸åå¤ç¨äºæä»¶å¥æ,ä½å¨ä»å½æ°ä¼åºæå彿°ä¼å¥æ°çæä»¶å¥ææ¶å®è¿æ¯å¿éç.å为*HANDLE{IO} åªæå¨HANDLE å·²ç»æ¯æä»¶å¥ææ¶æèµ·ä½ç¨. æ¢è¨ä¹, å¨å»ºç«æ°ç¬¦å·è¡¨é¡¹æ¶å¿é¡»ä½¿ç¨ *FH; *foo{THING} æ¯ä¸è¡ç. ä¸ç¥é该ç¨è°æ¶, ä½¿ç¨ *FH

ææè½å建æä»¶å¥æç彿° (open(), opendir(), pipe(), socketpair(), sysopen(), socket(), å accept()) ,å¨ä¼ éç»å®ä»¬çå¥ææ¯æ éæ¶,ä¼èªå¨å建ä¸ä¸ªå¿å奿. è¿ä½¿å¾è±¡open(my $fh, ...) å open(local $fh,...) è¿æ ·çç»æå¯ä»¥å建ä¸ä¸ªå¨è¶åºèå´æ¶å¯ä»¥èªå¨å³é- ç奿,å¦ææ²¡æå¦å¤ç对å®ä»¬çå¼ç¨çè¯. è¿å¤§å¤§åå°äºå¨å±ç±»åç使ç¨,å½éè¦æå¼ä¸ä¸ªå¯ä»¥å°å¤ä½¿ç¨ç奿æ¶, å¯ä»¥è¿æ ·åï¼

sub myopen {
open my $fh, "@_"
or die "Can’t open ’@_’: $!";
return $fh;
}

{
my $f = myopen("</etc/motd");
print <$f>;
# $f implicitly closed here
}

注æå¦æä½¿ç¨äºåå§åçæ éï¼é£ä¹ç»æä¼æä¸å1my $fh=’zzz’; open($fh, ...)’ 丑open( *{’zzz’}, ...)’ çä»·ã‘use strict ’refs’’ ç¦æ¢äºè¿æ ·åã

å¦ä¸ä¸ªå建å¿åå¥æçæ¹æ³æ¯ç¨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 çææ«æä¸ªä¾å- .(è¯è注:说å®è¯,对å¿å奿æç°å¨ä¹æ¯ä¸å¤´é¾æ°´,ç¿»è¯çä¸å½ä¹å¤,è¯·é«ææåº.)

SEE ALSO åè§

åè§ the perlvar manpage äºè§£ Perlçå建åéååæ³åéãåè§the perlref manpage, the perlsub manpage, å Symbol Tables in the perlmod manpage äºè§£å¨å±ç±»åå *foo{THING} è¯æ³ã

䏿çç»´æ¤äºº

redcandle <redcandle51@nospam.chinaren.com>

ä¸æçææ°æ´æ°

2001å¹´12æ4æ¥ææäº

䏿æå页翻è¯è®¡å

http://cmpp.linuxforum.net

è·

æ¬é¡µé¢ä¸æçç±ä¸æ man æå页计åæä¾ã
䏿 man æå页计åï¼https://github.com/man-pages-zh/manpages-zh