PERLSTYLE 7

中文man手册

PERLSTYLE

NAME
DESCRIPTION æè¿°
è¯è
䏿æå页翻è¯è®¡å
è·

NAME

perlstyle - Perl 飿 ¼æå

DESCRIPTION æè¿°

æ¯ä¸ªç¨åºåå½ç¶é½ä¼æèªå·±çç¼ç¨é£æ¼ï¼ä½æ¯æä¸äºä¸è¬æ§çååå¯ä»¥ä½¿å¾æä»¬çç¨åºæ´æäºé读ï¼çè§£ï¼ä»¥åç»´æ¤ã

æéè¦çæ¯ä½¿ç¨ -w é项. 妿å¿é¡»å³é该é项ï¼å¯ä»¥ç¨ "no warnings" æåé $ˆW æ¥å¨ä¸å®çä»£ç æ®µä¸å³éå®. ä½ è¿åºè¯¥ä½¿ç¨ "use strict" é¤éä½ æ¸æ¥ä¸ä½¿ç¨å®ççç±. "use sigtrap" å "use diagnostics" 乿¯é常æç¨ç.

å³äºä»£ç ç¾å¦, Larry 大æ¦åªå¼ºççå³å¿ä¸ä»¶äºæï¼å¤è¡åçç»æè±æ¬å·åºè¯¥ä¸å¼å§çå³é®å对é½. é¤äºè¿ä¸ª, è¿æä¸äºä¸æ¯é£ä¹éè¦çäºæ:

4-å缩è¿.

妿å¯è½çè¯ï¼å¼å§çè±æ¬å·ä¸å³é®è¯æå¥½æ¾å¨åä¸è¡ï¼å¦å对é½.

å¤è¡çåçå¼å§çè±æ¬å·ä¹ååºå½æç©ºæ ¼

åè¡çåæ¾å¨ä¸è¡ï¼åæ¬è±æ¬å·.

åå·åä¸è¦ç©ºæ ¼.

å¨ççåè¡åä¸çç¥åå·.

æä½ç¬¦å¨å´æç©ºæ ¼.

å¨âå¤åâ䏿 å¨å´æç©ºæ ¼ (卿¬å·ä¸).

å¨ä¸ååè½çåä¹é´æç©ºè¡.

elseå¦èµ·ä¸è¡å

彿°ä¸æ¬å·é´ä¸è¦ç©ºæ ¼

æ¯ä¸ªéå·åæç©ºæ ¼.

é¿å¥å卿ä½ç¬¦åæªæ ( "and" å "or" é¤å¤).

å³éæ¬å·åæç©ºæ ¼.

ç¸å³é¡¹ä¹é´ä»¥å对é½.

å¨ä¸å½±åæ¸æ°çæåµä¸å°½éåå°æ ç¹ç¬¦å·.

Larry è¿æ ·åå½ç¶æä»çåå , ä¸è¿ä»æ²¡æè¦æ±å«äººé½åä»ä¸æ ·.

以䏿è§ä¾æ¨åè:

å¯ä»¥é£æ ·å并䏿å³çåºè¯¥é£æ ·å. Perl è®¾è®¡ä¸ºä½æ¯ä»¶äºé½å¯ä»¥ç¨å¥½å ç§æ¹æ³, ä½ åºè¯¥éæ©æå¯è¯»çä¸ç§. ä¾å¦

open(FOO,$foo) ⎪⎪ die "Can’t open $foo: $!";

好äº

die "Can’t open $foo: $!" unless open(FOO,$foo);

å ä¸ºç¬¬äºç§åæ³æ©çäºå¥åä¸ç主è¦å容ãå¦ä¸æ¹é¢

print "Starting analysis\n" if $verbose;

好äº

$verbose && print "Starting analysis\n";

å ä¸ºä¸»è¦å³é®ä¸å¨äºæ¯å¦ç¨æ·è¾å¥äº -vã

类似çï¼å为ä¸ä¸ªæä½ç¬¦å许使ç¨é»è®¤åæ°ï¼ä¸æå³çä½å¿é¡»ä½¿ç¨é»è®¤å¼ãé»è®¤å¼æ¯ä¸ºææ°çç³»ç»ç¨åºå书ååªè¿è¡ä¸æ¬¡çç¨åºåå¤çã妿ä½éè¦ä½çç¨åºå°½éå¯è¯»ï¼èèç»åºåæ°ã

æ ¹æ®ç¸åçååï¼å¨å¾å¤å°æ¹å³ä½¿ä½ å¯ä»¥å¿½ç¥æ¬å·ä¹ä¸æå³çä½ åºå½è¿æ·åï¼

return print reverse sort num values %array;
return print(reverse(sort num (values(%array))));

妿æçä¹ï¼ä½¿ç¨æ¬å·ãè³å°å®ä½¿å¾å¯æç笨èè½å¨ vi ä¸ä½¿ç¨ % 鮿¥è·³è½¬

çè³ä½æ²¡æçä¹çæ¶åï¼ä¸ºé£ä¸ªå°æ¥ç»´æ¤ä½ç代ççå®¶ä¼çç²¾ç¥å¥åº·èèä¸ä¸å§ï¼å¹¶ä¸ä»æå¯è½ææ¬å·æ¾éå°æ¹ã

å¨ç¨åºä¸ä½¿ç¨ last è·³åºï¼èä¸è¦å¨å¼å§åç»ææ¶ç¨å¥æªç跳转éåºå¾ªç¯ãæå® "缩åº" å æ ¼ä»¥å©äºå¯ç:

LINE:
for (;;) {
statements;
last LINE if $foo;
next LINE if /ˆ#/;
statements;
}

å«å®³æä½¿ç¨å¾ªç¯æ è®°--å®ä»¬ç¨æ¥å¢å¼ºå¯è¯»æ§å¹¶ä¸å许å¤å±å¾ªç¯ä¸æ. åè§åä¾.

é¿åå¨ç©ºä¸ä¸æä¸ä½¿ç¨ grep() (æ map()) æ ‘åå¼å·‘ , 飿 ·ï¼ä½ å°±ä¸¢å¼äºå®ä»¬çè¿åå¼. 使ç¨å®ä»¬æ¯ä¸ºäºå¾å°è¿åå¼ï¼å¦åï¼ä½¿ç¨ foreach() ææ¯ system() 好äº.

èèç§»æ¤çæ¶åï¼æäºç¹æ§å¯è½ä¸æ¯å¨ææçæºå¨ä¸é½è½å¤å¾å°æ¯æ, è¿æ¶å¯ä»¥ç¨ evalæ¥æµè¯. 妿你ç¥éæä¾ç¹å®åè½ççæ¬ææ¯è¡¥ä¸, ä½ å¯ä»¥å¯ç $] (ä¹å°±æ¯ "English" ä¸ç $PERL_VERSION) æ¥ç¡®å®å½åççæ¬. "Config" 模åä¹ä¼æä¾perlå¨å®è£æ¶ Configure ç¨åºæµå¾çå¼.

ä½¿ç¨æç¡®çæ è¯ç¬¦ï¼ä½ è¦æ¯æ³ä¸èµ·æ¥æ è¯ç¬¦çææï¼é£å°±éº»ç¦äºã

çæ è¯ç¬¦å¦ $gotit è½ç¶æ²¡ä»ä¹ä¸å¥½, 使¯ç¨ä¸å线æ¥åå²åè¯å¯ä»¥å¢å å¯è¯»æ§. å¦ $var_names_like_this å¥½äº $VarNamesLikeThis,对ä¸ä»¥è±è¯ä¸ºæ¯è¯çäººæ´æ¯å¦æ¤.åæ ·ï¼å¨ä½¿ç¨ VAR_NAMES_LIKE_THIS æ¶ä¹è¦éµå¾ªè¿ä¸ªè§åã

ååç§°ææ¶ä¸éµå®è¿ä¸ªçº¦å®. Perl 为 "pragma" ä¿çå°åçååç§°ï¼æ¯å¦ integer å strict. å¶ä»æ¨¡ååç§°åºè¯¥ç¨å¤§åå- æ¯å¼å§ï¼ä½æ¯ä¸è¬ä¸ç¨ä¸å线æ¥åéï¼å为å½ä½¿ç¨æ¨¡å忥使件忶ï¼è¿å¨æäºç³»ç»ä¼åºç°é误.

使ç¨å¤§å°åå¯ä»¥åºååéçä½ç¨åãä¾å¦:

$ALL_CAPS_HERE 常é (å°å¿ï¼ä¸è¦ä¸ perl åéå²çª!)
$Some_Caps_Here åä½ç¨å global/static
$no_caps_here 彿°ä½ç¨å my() æ local() åé

彿°åæ¹æ³åå¤ç¨å°å. å¦, $obj->as_string().

ç¨ä¸å线å¼å§ç彿°åæåéåï¼è¡¨ç¤ºè¯¥å½æ°æåéåªè½å¨å®ä¹å®çåä¸ä½¿ç¨.

å¦æä½ çæ£å表达å¼è¾å¤æï¼ç¨ "/x" æ¥å¢å æ³¨éè¡æç©ºè¡ä»¥å©äºé读. å½å¶ä¸æå¾å¤ææ æåææ æ¶ï¼ä¸è¦ç¨åææ æ¥ä½æ£å表达å¼çå®ç符.

ä½¿ç¨ "and" å "or" æä½ç¬¦ä»¥åå°ä½¿ç¨æ¬å·, å°½éå°ç¨ && å ⎪⎪. è°ç¨å- ç¨åºæ¶å°½éå°ç¨"&"忬å·ï¼å¯ä»¥æåç¨åºå½å彿°æå表æä½ç¬¦æ¥è°ç¨.

ä½¿ç¨ here documents 代æ¿å¤§éç print() è¯å¥.

ç¸å³è¯å¥ç¨å坹齿¹å¼æ¥ä¹¦åï¼ç¹å«æ¯å½ä¸è¡æ¾ä¸ä¸çæ¶å.

$IDX = $ST_MTIME;
$IDX = $ST_ATIME if $opt_u;
$IDX = $ST_CTIME if $opt_c;
$IDX = $ST_SIZE if $opt_s;

mkdir $tmpdir, 0700 or die "can’t mkdir $tmpdir: $!";
chdir($tmpdir) or die "can’t chdir $tmpdir: $!";
mkdir ’tmp’, 0777 or die "can’t mkdir $tmpdir/tmp: $!";

æ»æ¯æ£æµè¿åå¼. é误信æ¯è¢«éå¾ STDERR, 忬åºéçç¨åºã失败çç³»ç»è°ç¨ååæ°ãå¹¶ä¸ï¼é常éè¦çï¼åæ¬æ åé误信æ¯. è¿éæ¯ä¸ä¸ªç®åè宿´çä¾å:

opendir(D, $dir) or die "can’t opendir $dir: $!";

æç¿»è¯å表以å坹齿¹å¼æå:

tr [abc]
[xyz];

èèå¯éç¨æ§. 请èèä½¿ç¨æ¨¡åæå¯¹è±¡. èèä½¿ç¨ use strict å use warnings (æ -w) ä½¿ä»£ç æ¸æ°æç¡®. èèæ¹åä¸çè§ã

è¦ä¸è´ï¼è¦å¼å®¹ã

è¦æ¼äº®ï¼è¦ç¾è§ã

è¯è

redcandle <redcandle51@chinaren.com> 20010530

䏿æå页翻è¯è®¡å

http://cmpp.linuxforum.net

è·

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