锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
鍗曡礬瑙g爜錛?br />灝唄dmi綰挎彃鍏ュ洓涓煶棰戞帴鍙f梺杈圭殑閭d釜hdmi鍙c?br />緇堢鎵ц鍛戒護錛歳unDecodeDisplayHDMI
浠g爜浣嶇疆錛?usr/bin/runDecodeDisplayHDMI
]]>
]]>
gstreamer-0.10.35
arm-none-linux-gnueabi-gcc-4.5.2
緙栬瘧鍑烘潵涔嬪悗璋冪敤 gst-inspect shmsrc錛屽彂鐜頒俊鎭病鏈夋墦鍗板畬灝卞嚭鐜?Abort 閿欒銆?br />鑰?gst-inspect mpegtsmux 鎴栬?v4l2src 榪樻湁鍏朵粬鐨勭粍浠朵篃鏈夌被浼肩殑閿欒銆?br />濡備笅鎵紺猴細
榪欏彲鑳芥槸鏀跺埌浜嗕竴涓?Abort 淇″彿瀵艱嚧閫鍑虹殑錛岃屼笉鏄▼搴忔甯哥粨鏉熴?br />浜庢槸鍦?buildroot 涓婇変腑 gdb 騫朵笖閫夋嫨甯﹁皟璇曚俊鎭紪璇戯紙-g3錛夈?/div>
鍙瀹冩槸鍦?nbsp;print_element_info 鍐呭彂鐢熺殑閿欒錛岃屼笂闈㈡墦鍗扮殑淇℃伅涔熸槸鍦?“Element Implementation:” 榪欎竴鍙ヨ瘽鍚庣粓姝㈢殑銆?br />鎺ヤ笅鏉ョ殑 g_strdup_printf 浠ュ強涓緋誨垪鐨?g 鎵撳ご鐨勫嚱鏁伴兘鏄?glib 閲岄潰鐨勪唬鐮併?br />濂囨簡錛岃繖綾誨父鐢ㄧ殑鍑芥暟鎬庝箞鍙兘浼氬嚭閿欏憿錛?br />鍘嗙粡鍛ㄦ姌錛屾渶鍚庡彂鐜版渶搴曞眰璋冪敤鐨勬槸 sprintf 鍑芥暟銆?br />
鑰屽湪 sprintf 鐨勬柇鐐瑰錛岀‘鍙戠幇鍑芥暟鐨勫弬鏁伴兘鏄甯哥殑銆?br />鐪熸槸鍗佸垎璇″紓鐨勭幇璞°?br />
鑰?lib 鐨?sprintf 宸茬粡娌℃湁婧愮爜浜嗭紝浜庢槸鐢?si 閫愭寚浠よ窡韙傛寜浜嗗崐鍒嗗縐嶅拷鐒舵湁閲嶅ぇ鍙戠幇錛?br />涓寮濮嬩竴鐩村湪 vfprintf 閲岄潰錛岀劧鍚庤煩杞埌涓涓簳灞傜殑 __parse_one_specmb 鍑芥暟銆?br />灞呯劧鐬棿鍙堣煩杞埌涓涓?gstreamer 涓殑鍑芥暟 _gst_info_printf_extension_arginfo錛?br />
榪欎釜鍑芥暟絀剁珶鏄綍鏂圭鍦o紝鐪嬭搗鏉ュ儚鏄竴涓?printf 鎵╁睍綾葷殑鍥炶皟鍑芥暟銆?br />鍙戠幇浜嗙湡韜紝榪欏埌搴曟槸浠涔堜笢瑗匡紵
鎼滀簡涓涓嬶紝鎵懼埌浜?GNU 鐨勫畼緗戯紝鍙戠幇鏄?printf 鐨勬墿灞曞姛鑳姐傛槸 glibc 2.0 鐗堟湰浠ュ悗鐨勬柊涓滆タ銆?br />

涓鍒囨甯鎬簡錛佸搱鍝堬紒
鏈鍚庡彂鐜版棭鍦?011騫?鏈堜喚灝辨湁鑰佸鍙戠幇浜嗚繖涓棶棰樸?a >https://bugzilla.gnome.org/show_bug.cgi?id=638599
璨屼技鏄窡 glib 鐨勪竴浜涙満鍒剁浉鍏熾?br />鍙兘鏄獎鍝嶈寖鍥翠笉澶熷箍錛岃繕娌℃湁瀵艱嚧鍒拌鍙栨秷鎺夎繖涓満鍒躲?br />
铏界劧璇翠負浜嗕竴涓帿鍚嶅叾濡欑殑闂蹇欐椿浜嗗崐澶╋紝浣嗗浜嗕竴浜?gdb 鍛戒護錛岃屼笖榪樼煡閬撲簡 printf 鍘熸潵榪樿兘鎵╁睍銆傚緢紲炲鐨勪笢瑗褲?img src ="http://m.shnenglu.com/varg-vikernes/aggbug/164758.html" width = "1" height = "1" />
]]>
static LJ_AINLINE int str_fastcmp(const char *a, const char *b, MSize len)
{
MSize i = 0;
lua_assert(len > 0);
lua_assert((((uintptr_t)a + len) & (LJ_PAGESIZE-1)) <= LJ_PAGESIZE-4);
do { /* Note: innocuous access up to end of string + 3. */
uint32_t v = lj_getu32(a+i) ^ *(const uint32_t *)(b+i);
if (v) {
i -= len;
#if LJ_LE
return (int32_t)i >= -3 ? (v << (32+(i<<3))) : 1;
#else
return (int32_t)i >= -3 ? (v >> (32+(i<<3))) : 1;
#endif
}
i += 4;
} while (i < len);
return 0;
}
]]>
鍗堥榪囩▼涓紝槨愬巺閲岀殑鎵鏈変漢閮芥牴鎹嚜宸辯殑闇瑕佸彇鐢ㄩ宸劇焊銆傚綋鍨冨溇鏀墮泦鏈哄櫒浜烘兂鏀墮泦搴熸棫槨愬肪綰哥殑鏃跺欙紝瀹冧細璁╂墍鏈夌敤槨愮殑浜哄厛鍋滀笅鏉ワ紝鐒跺悗錛屼緷嬈¤闂鍘呴噷鐨勬瘡涓涓漢錛?#8220;浣犳鍦ㄧ敤槨愬肪綰稿悧錛熶綘鐢ㄧ殑鏄摢涓寮犻宸劇焊錛?#8221;鏈哄櫒浜烘牴鎹瘡涓漢鐨勫洖絳斿皢浜轟滑姝e湪浣跨敤鐨勯宸劇焊鐢諱笂璁板彿銆傝闂繃紼嬬粨鏉熷悗錛屾満鍣ㄤ漢鍦ㄩ鍘呴噷瀵繪壘鎵鏈夋暎钀藉湪槨愭涓婁笖娌℃湁璁板彿鐨勯宸劇焊錛堣繖浜涙樉鐒墮兘鏄敤榪囩殑搴熸棫槨愬肪綰革級錛屾妸瀹冧滑緇熺粺鎵斿埌鍨冨溇綆遍噷銆?nbsp;
姝e鍏跺悕縐版墍鏆楃ず鐨勯偅鏍鳳紝鏍囪錛嶆竻闄ょ畻娉曠殑鎵ц榪囩▼鍒嗕負“鏍囪”鍜?#8220;娓呴櫎”涓ゅぇ闃舵銆傝繖縐嶅垎姝ユ墽琛岀殑鎬濊礬濂犲畾浜嗙幇浠e瀮鍦炬敹闆嗙畻娉曠殑鎬濇兂鍩虹銆備笌寮曠敤璁℃暟綆楁硶涓嶅悓鐨勬槸錛屾爣璁幫紞娓呴櫎綆楁硶涓嶉渶瑕佽繍琛岀幆澧冪洃嫻嬫瘡涓嬈″唴瀛樺垎閰嶅拰鎸囬拡鎿嶄綔錛岃屽彧瑕佸湪“鏍囪”闃舵涓窡韙瘡涓涓寚閽堝彉閲忕殑鎸囧悜——鐢ㄧ被浼兼濊礬瀹炵幇鐨勫瀮鍦炬敹闆嗗櫒涔熷父琚悗浜虹粺縐頒負璺熻釜鏀墮泦鍣紙 Tracing Collector 錛?nbsp;
浼撮殢鐫 Lisp 璇█鐨勬垚鍔燂紝鏍囪錛嶆竻闄ょ畻娉曚篃鍦ㄥぇ澶氭暟鏃╂湡鐨?nbsp;Lisp 榪愯鐜涓ぇ鏀懼紓褰┿傚敖綆℃渶鍒濈増鏈殑鏍囪錛嶆竻闄ょ畻娉曞湪浠婂ぉ鐪嬫潵榪樺瓨鍦ㄦ晥鐜囦笉楂橈紙鏍囪鍜屾竻闄ゆ槸涓や釜鐩稿綋鑰楁椂鐨勮繃紼嬶級絳夎澶氱己闄鳳紝浣嗗湪鍚庨潰鐨勮璁轟腑錛屾垜浠彲浠ョ湅鍒幫紝鍑犱箮鎵鏈夌幇浠e瀮鍦炬敹闆嗙畻娉曢兘鏄爣璁幫紞娓呴櫎鎬濇兂鐨勫歡緇紝浠呮涓鐐癸紝 J. McCarthy 絳変漢鍦ㄥ瀮鍦炬敹闆嗘妧鏈柟闈㈢殑璐$尞灝變笣姣笉浜氫簬浠栦滑鍦?nbsp;Lisp 璇█涓婄殑鎴愬氨浜嗐?nbsp;
]]>
鎴戣瀹夎dvsdk鐨?.0鐗堟湰銆傚畠鐨勫畨瑁呭寘鏄竴涓崟涓殑鍙墽琛屾枃浠訛細
![]()
瀹冩彁紺猴紝鍙兘鍦║buntu 10.04涓婇潰瀹夎銆?br />

鎴戣嚜宸辯殑Ubuntu鏄?1.04錛屾枃浠剁郴緇焤esierfs錛屽鏋渞esize鐨勮瘽璨屼技浼氭竻絀恒傚綋鐒朵篃涓嶆効鎰忓啀瑁呬竴涓棫鐗堢殑銆?br />
鎵浠ョ悽紓ㄧ潃鎬庝箞鎶婅繖涓檺鍒跺幓鎺夈?br />
棣栧厛鎴戜及璁″畠鏄浜嗘煇涓枃浠舵潵鑾峰彇鐨勫彂琛岀増鏈彿銆?br />
鎵浠ュ厛鐢?strace 鍛戒護鐪嬩竴涓嬨傚姞涓涓?-f 琛ㄧず璺熻釜 fork 鍑烘潵鐨勫瓙榪涚▼銆?br />榪欎釜宸ュ叿鍙互鎵撳嵃鍑虹▼搴忔墍鏈夌殑 syscall銆傚洜姝?open錛宺ead錛寃rite錛宻elect 涔嬬被鐨勮皟鐢ㄩ兘浼氳鎵撳嵃鍑烘潵銆?br />
![]()

“natty”鏄疷buntu 11.04鐨勪唬鍙鳳紝涔熷氨鏄榪欎釜紼嬪簭鍦ㄦ煇涓湴鏂硅鍒頒簡Ubuntu鐨勭増鏈彿銆?br />鎴戝榪欎簺涓嶄簡瑙o紝浜庢槸google浜嗕竴涓嬶紝鍙戠幇鏄氳繃璋冪敤 lsb_release 榪欎釜宸ュ叿鏉ヨ鍒扮殑銆?br />![]()
鐒跺悗鍙堝彂鐜頒竴涓ソ娑堟伅錛岃繖涓伐鍏鋒槸 python 鍐欑殑銆?br />浜庢槸鍔犱簡鍗婂彞浼橀泤鐨勪唬鐮侊細
鍏朵腑“lucid”鏄?Ubuntu 10.04 鐨勭増鏈彿銆傚鏋?/tmp/lucidhack 榪欎釜鏂囦歡瀛樺湪錛屽氨杈撳嚭 lucid 銆?br />鐪嬬湅鏁堟灉鍚э細![]()

鍏跺疄寰堝鏃跺欓棶棰樺緢綆鍗曪紝瀹屽叏娌℃湁蹇呰澶у姩騫叉垐銆?/div>
]]>
緲昏瘧鑷細http://en.wikipedia.org/wiki/WTFPL
WTFPL (Do What The Fuck You Want To Public License) 鏄竴涓緢灝戜嬌鐢ㄧ殑錛屾瀬绔嚜鐢辯殑鑷敱杞歡鍗忚銆?br />
WTFPL 鏈鍒濈殑 1.0 鐗堟湰璁稿彲璇佸彂甯冧簬 2000 騫?3 鏈堜喚銆傚彂甯冭呮槸 Banlu Kemiyatorn錛屾渶鍒濈敤浜?WindowMaker 杞歡銆?br />
Samuel “Sam” Hocevar錛?007 騫村拰 2008 騫撮棿鐨?Debian 欏圭洰璐熻矗浜猴紝鍙戝竷浜?WTFPL 鐨?2.0 鐗堟湰銆?br />
WTFPL 鍏佽浠g爜鍦ㄤ換浣曞崗璁笅閮借鑳戒換鎰忎慨鏀瑰拰鍙戝竷 --- 涔熷氨鏄?#8220;do what the fuck [they] want to do”錛堝仛浣犱粬濡堟兂鍋氱殑錛夈?br />
WTFPL 琚嚜鐢辮蔣浠剁粍緇囪鍙負 GPL 鍏煎銆?br />
鍗忚鍐呭
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. You just DO WHAT THE FUCK YOU WANT TO.
]]>
@chars = map(chr, @numbers);
榪斿洖涓緇勬暟瀛楃殑騫蟲柟
my @squares = map { $_ > 5 ? ($_ * $_) : () } @numbers;
榪斿洖澶т簬5鐨勬暟瀛楃殑騫蟲柟
my @squares = map { $_ > 5 ? ($_ * $_) : () } @numbers;
鐢變簬 map 鎬繪槸榪斿洖涓涓垪琛紝鍥犳鍙互璧嬪肩粰鍝堝笇綾誨瀷鐨勫彉閲忥細
%hash = map { get_a_key_for($_) => $_ } @array;
涔熷彲浠ヨ繖鏍峰啓錛?/br>
%hash = ();
foreach (@array) {
$hash{get_a_key_for($_)} = $_;
}
-X FILEHANDLE
鏂囦歡嫻嬭瘯鍑芥暟錛?/br>
-r File is readable by effective uid/gid.
-w File is writable by effective uid/gid.
-x File is executable by effective uid/gid.
-o File is owned by effective uid.
-R File is readable by real uid/gid.
-W File is writable by real uid/gid.
-X File is executable by real uid/gid.
-O File is owned by real uid.
-e File exists.
-z File has zero size (is empty).
-s File has nonzero size (returns size in bytes).
-f File is a plain file.
-d File is a directory.
-l File is a symbolic link.
-p File is a named pipe (FIFO), or Filehandle is a pipe.
-S File is a socket.
-b File is a block special file.
-c File is a character special file.
-t Filehandle is opened to a tty.
-u File has setuid bit set.
-g File has setgid bit set.
-k File has sticky bit set.
-T File is an ASCII text file (heuristic guess).
-B File is a "binary" file (opposite of -T).
-M Script start time minus file modification time, in days.
-A Same for access time.
-C Same for inode change time (Unix, may differ for other platforms)
delete EXPR
EXPR 涓哄搱甯屽彉閲忕殑 slice 鎴栬呮槸鍗曚釜鍏冪礌銆?/br>
榪斿洖鍊間負鍒犻櫎鎺夊厓绱犵殑鍊鹼紝鍙互鏄垪琛ㄣ?/br>
濡傛灉榪斿洖鍊艱瑕佹眰涓?scalar 綾誨瀷錛屽垯榪斿洖琚垹闄ょ殑鏈鍚庝竴涓箋?/br>
delete 涔熷彲浠ョ敤浜庢暟緇勭被鍨嬬殑鍙橀噺錛屼笉榪囧畠鐨勮涓哄彲鑳戒笉鏄綘鎵棰勬兂鐨勯偅鏍楓?/br>
渚嬪瓙錛?/br>
%hash = (foo => 11, bar => 22, baz => 33);
$scalar = delete $hash{foo}; # $scalar is 11
$scalar = delete @hash{qw(foo bar)}; # $scalar is 22
@array = delete @hash{qw(foo bar baz)}; # @array is (undef,undef,33)
each HASH
each ARRAY
each EXPR
榪斿洖鍝堝笇鐨勬瘡涓?(key, value) 鎵緇勬垚鐨勬暟緇勩?/br>
渚嬪瓙錛?/br>
while (($key, $value) = each %hash) {
print $key, "\n";
delete $hash{$key}; # This is safe
}
eof FILEHANDLE
eof ()
eof
娉ㄦ剰 eof() 涓?eof 鐨勫尯鍒細
eof()錛氬鏋滃埌杈句簡 <> 鐨勬渶鍚庝竴涓枃浠剁殑鏈熬錛屽垯榪斿洖1
eof錛氬鏋滃埌杈句簡褰撳墠鏂囦歡鐨勬湯灝撅紝鍒欒繑鍥?
# reset line numbering on each input file
while (<>) {
next if /^\s*#/; # skip comments
print "$.\t$_";
} continue {
close ARGV if eof; # Not eof()!
}
# insert dashes just before last line of last file
while (<>) {
if (eof()) { # check for end of last file
print "--------------\n";
}
print;
last if eof(); # needed if we're reading from a terminal
}
]]>
print "The array is: @array\n";
print "The array is: " . join($", @array) . "\n";
瀹冧滑鏄浉絳夌殑銆?/br>
@a = (1, 3, 4);
print "@a\n";
$" = ",";
print "@a\n";
print "1,3,4" =~ /@a/;
杈撳嚭涓?/br>
1 3 4
1,3,4
1
$PROCESS_ID
$PID
$$
榪愯 perl 鑴氭湰鐨勫綋鍓嶈繘紼嬬殑 pid 鍊箋傜瓑鍚屼簬 getpid()銆?/br>
$REAL_GROUP_ID
$GID
$(
璇ヨ繘紼嬬殑 real gid 銆傜敱 getgid() 鑾峰緱銆?/br>
濡傛灉榪愯鍦ㄤ竴涓敮鎸佺敤鎴峰悓鏃跺睘浜庡涓粍鐨勬搷浣滅郴緇熶笂錛?( 灝嗚繑鍥炵敱絀烘牸鍒嗛殧鐨勫涓?gid銆傜敱 getgroups() 鑾峰緱銆?/br>
鍙兘緇?$( 璧嬩簣鍗曚釜鏁存暟銆?/br>
$EFFECTIVE_GROUP_ID
$EGID
$)
璇ヨ繘紼嬬殑 effective gid銆?/br>
$< = $>; # set real to effective uid
($<,$>) = ($>,$<); # swap real and effective uids
$PROGRAM_NAME
$0
褰撳墠紼嬪簭鐨勫悕瀛椼?/br>
$SUBSCRIPT_SEPARATOR
$SUBSEP
$;
濡傛灉榪欐牱璁塊棶涓涓搱緋昏〃錛?/br>
$foo{$a,$b,$c}
絳夊悓浜庯細
$foo{join($;, $a, $b, $c)}
渚嬪瓙錛?/br>
%h = ('123', 'test');
$; = '';
print $h{1,2,3}; # 杈撳嚭 test
%ENV
瀛樻斁鐜鍙橀噺鍝堝笇琛ㄣ?/br>
@F
褰撴寚瀹氫簡 -a 鍙傛暟鐨勬椂鍊欙紝@F 涓繚瀛樼潃姣忎竴琛岃鍒嗛殧鍚庣殑鏁扮粍錛?/br>
perl -ane 'print pop(@F), "\n";'
絳夊悓浜?/br>
while (<>) {
@F = split(' ');
print pop(@F), "\n";
}
$OSNAME
$^O
褰撳墠鎿嶄綔緋葷粺鐨勫悕瀛椼?/br>
# perl -e "print $^O"
# linux
%SIG
鍝堝笇 %SIG 涓繚瀛樹簡淇″彿鐨勫鐞嗗嚱鏁般備緥瀛愬涓嬶細
sub handler { # 1st argument is signal name
my($sig) = @_;
print "Caught a SIG$sig--shutting down\n";
close(LOG);
exit(0);
}
$SIG{'INT'} = \&handler;
$SIG{'QUIT'} = \&handler;
...
$SIG{'INT'} = 'DEFAULT'; # restore default action
$SIG{'QUIT'} = 'IGNORE'; # ignore SIGQUIT
璧嬪間負 'IGNORE' 鍒欏拷鐣ヨ淇″彿錛岄櫎浜?CHLD 淇″彿銆?/br>
涓嬮潰鏄寚瀹氬鐞嗗嚱鏁扮殑鍏朵粬鏂瑰紡錛?/br>
$SIG{"PIPE"} = "Plumber"; # 鎸囧畾涓?main::Plumber (涓嶆帹鑽?
$SIG{"PIPE"} = \&Plumber; # 鎺ㄨ崘鐨勬柟寮?
$SIG{"PIPE"} = *Plumber; # 鏈夌偣濂囨?
$SIG{"PIPE"} = Plumber(); # 閿欒鐨勫仛娉曪紝Plumber() 浼氳繑鍥炰粈涔堬紵錛?
閮ㄥ垎鍐呴儴鐨?hook 涔熷彲浠ラ氳繃璁劇疆 SIG 鏉ユ寚瀹氥傛瘮濡傝錛?/br>
local $SIG{__WARN__} = sub { die $_[0] };
eval $proggie;
褰撲竴涓?warning 琚姏鍑虹殑鏃跺欙紝$SIG{__WARN__} 鎵鎸囧悜鐨勫嚱鏁板皢琚皟鐢ㄣ?/br>
warning 娑堟伅鐨勫唴瀹逛負鍑芥暟鐨勭涓涓弬鏁般?/br>
$BASETIME
$^T
紼嬪簭寮濮嬭繍琛岀殑鏃墮棿(鏃墮棿鎴?
# perl -e "print $^T"
1314234806
$PERL_VERSION
$^V
perl 鐨勭増鏈彿
warn "Hashes not randomized!\n" if !$^V or $^V lt v5.8.1
== 鍜屾鍒欒〃杈懼紡鐩稿叧鐨勫彉閲?==
$<digits> ($1, $2, ...)
鍖歸厤涓?() 鍖歸厤鐨勯儴鍒嗐?/br>
$&
$MATCH
鍓嶄竴嬈℃垚鍔熷尮閰嶇殑瀛楃涓層?/br>
$`
$PREMATCH
浣嶄簬鍓嶄竴嬈℃垚鍔熷尮閰嶅瓧絎︿覆鍓嶉潰鐨勫瓧絎︿覆銆?/br>
$'
$POSTMATCH
浣嶄簬鍓嶄竴嬈℃垚鍔熷尮閰嶅瓧絎︿覆鍚庨潰鐨勫瓧絎︿覆銆?/br>
local $_ = 'abcdefghi';
/def/;
print "$`:$&:$'\n"; # 杈撳嚭 abc:def:ghi
$LAST_PAREN_MATCH
$+
鍓嶄竴嬈℃垚鍔熷尮閰嶄腑鏈鍚庝竴涓?() 涓殑鍐呭銆?/br>
/Version: (.*)|Revision: (.*)/ && ($rev = $+);
@LAST_MATCH_END
@+
鍓嶄竴嬈℃垚鍔熷尮閰嶄腑姣忎釜 () 鍖歸厤鐨勫亸縐婚噺銆?/br>
$+[0] 涓烘暣涓尮閰嶆湯灝劇殑鍋忕Щ閲?/br>
$+[1] 涓?$1 鏈熬鐨勫亸縐婚噺
$+[2] 涓?$2 鏈熬鐨勫亸縐婚噺
...
$#+ 涓哄墠涓嬈℃垚鍔熷尮閰嶇殑 () 鏁伴噺
%LAST_PAREN_MATCH
%+
鍓嶄竴嬈℃垚鍔熷尮閰嶄腑鍛藉悕鍖歸厤錛堝嵆涓?(?<name>...) 鐨勫艦寮忥級鐨勫搱緋昏〃銆?/br>
濡傦細
'foo' =~ /(?<foo>foo)/; # $+{foo} 鍜?$1 涓兘瀛樻斁鐫 'foo'
鍙﹀涓涓緥瀛愶細
$_ = "testing1234end";
/^testing(.)(.)(..)end/;
print "@+"; # 杈撳嚭 14 8 9 11
/^(?<foo>[a-z]+)(?<num>\d+)/;
print "$+{foo}"; # 杈撳嚭 testing
print "$+{num}"; # 杈撳嚭 1234
@LAST_MATCH_START
@-
鍜?@+ 綾諱技錛?/br>
$-[0] 涓烘暣涓尮閰嶅ご閮ㄧ殑鍋忕Щ閲?/br>
$-[1] 涓?$1 澶撮儴鐨勫亸縐婚噺
$-[2] 涓?$2 澶撮儴鐨勫亸縐婚噺
...
$` 絳夊悓浜?substr($var, 0, $-[0])
$& 絳夊悓浜?substr($var, $-[0], $+[0] - $-[0])
$' 絳夊悓浜?substr($var, $+[0])
$1 絳夊悓浜?substr($var, $-[1], $+[1] - $-[1])
$2 絳夊悓浜?substr($var, $-[2], $+[2] - $-[2])
$3 絳夊悓浜?substr($var, $-[3], $+[3] - $-[3])
%LAST_MATCH_START
%-
綾諱技浜?%+錛岄氳繃 %- 鍙互璁塊棶鍒頒笂涓嬈℃垚鍔熷尮閰嶄腑鎵鏈夌殑鍛藉悕鍖歸厤銆?/br>
姣忎釜鍛藉悕鍖歸厤鐨勫悕瀛楅兘涓庝竴涓暟緇勭浉鍏寵仈銆?/br>
姣斿璇達細
if ('1234' =~ /(?<A>1)(?<B>2)(?<A>3)(?<B>4)/) {
foreach my $bufname (sort keys %-) {
my $ary = $-{$bufname};
foreach my $idx (0..$#$ary) {
print "\$-{$bufname}[$idx] : ",
(defined($ary->[$idx]) ? "'$ary->[$idx]'" : "undef"),
"\n";
}
}
}
浼氳緭鍑猴細
$-{A}[0] : '1'
$-{A}[1] : '3'
$-{B}[0] : '2'
$-{B}[1] : '4'
== 鍜屾枃浠跺彞鏌勭浉鍏崇殑鍙橀噺 ==
$ARGV
<> 涓鍦ㄨ璇誨彇鐨勬枃浠剁殑鍚嶅瓧
渚嬪瓙錛?/br>
# cat c
1
2
# cat d
1
2
3
4
# cat a.pl
while (<>) {
print "$ARGV\n";
}
# perl a.pl c d
c
c
d
d
d
d
@ARGV
鍛戒護琛屽弬鏁幫紝$ARGV[0] 浠h〃絎竴涓弬鏁幫紙鑰屼笉鏄▼搴忕殑鍚嶅瓧錛夈?/br>
$OUTPUT_FIELD_SEPARATOR
$OFS
$,
print 鍑芥暟鐨勮緭鍑哄垎闅旂錛岄粯璁ゅ間負 undef銆?/br>
渚嬪瓙錛?/br>
print "a", "c"; # 杈撳嚭 ac
$, = "|";
print "a", "c"; # 杈撳嚭 a|c
$INPUT_LINE_NUMBER
$NR
$.
涓婁竴嬈¤鍙栨枃浠剁殑琛屽彿銆?/br>
$. 鍦ㄦ枃浠跺彞鏌勫叧闂殑鏃跺欓噸緗?/br>
鐢變簬 <> 鎿嶄綔絎︿笉浼氬叧闂枃浠訛紝鍥犳鍦ㄨ繛緇粠 ARGV 璇誨彇鏂囦歡鐨勬椂鍊欙紝$. 浼氫笉鏂鍔犮?/br>
渚嬪瓙錛?/br>
# cat a.pl
while (<>) {
print "$.\n";
}
# perl a.pl c d
1
2
3
4
5
6
鍏朵腑 c d 鐨勯暱搴﹀垎鍒負 2, 4 琛屻?/br>
$INPUT_RECORD_SEPARATOR
$RS
$/
綾諱技浜?awk 鐨?RS 鍙橀噺銆傚畠鍐沖畾浜?perl 濡備綍鍒嗗壊琛屻?/br>
渚嬪瓙錛?/br>
# cat c
1|2|3
# cat a.pl
$/ = "|";
while (<>) {
print "line:$_\n";
}
# perl a.pl c
line:1|
line:2|
line:3
$OUTPUT_RECORD_SEPARATOR
$ORS
$\
print 鍑芥暟杈撳嚭鐨勫垎闅旂銆傞粯璁ゅ間負 undef錛屽鏋滃畾涔変簡錛屽垯鍦?print 瀹屾墍鏈夊弬鏁板悗杈撳嚭 $\銆?/br>
渚嬪瓙錛?/br>
$\ = "|";
print "a";
print "b";
# 灝嗚緭鍑?a|b|
$OUTPUT_AUTOFLUSH
$|
濡傛灉璁劇疆涓洪潪0鐨勫鹼紝灝嗗己鍒剁殑 flush 褰撳墠 selected 鐨勬枃浠跺彞鏌勩?/br>
錛堢被浼間簬 setbuf(xx, NULL) 錛燂級
== 鍜岄敊璇俊鎭湁鍏崇殑鍙橀噺 ==
$ERRNO
$!
絳夊悓浜?libc 涓殑 errno銆傚彲浠ヨ漿鎹負 int 鍜?string 涓ょ褰㈠紡錛?/br>
open '/a';
print int($!) . ": $!\n"; # 杈撳嚭 2: 娌℃湁閭d釜鏂囦歡鎴栫洰褰?
$CHILD_ERROR
$?
綾諱技浜?shell 涓殑 $?銆傚彲浠ヤ負涓嬪垪鎿嶄綔鐨勮繑鍥炲鹼細
- 鏈鍚庝竴嬈$閬撳叧闂?/br>
- `` 鎴栬?system() 璇彞
- wait() 鎴栬?waitpid()
$? >> 8 涓哄瓙榪涚▼鐨勮繑鍥炲?/br>
$EVAL_ERROR
$@
涓婁竴嬈?eval() 鎿嶄綔鐨勮娉曢敊璇俊鎭?/br>
渚嬪瓙錛?/br>
# cat a.pl
eval "my a";
print "$@";
# perl a.pl
No such class a at (eval 1) line 1, near "my a"
syntax error at (eval 1) line 2, at EOF
]]>
褰?.."鎿嶄綔絎﹁繑鍥瀊ool鍨嬪彉閲忕殑鏃跺欙紝鏈夊涓嬪嚑涓緥瀛愶細
while (<>) {
print if (2 .. 6);
}
灝嗕細鎵撳嵃鏂囦歡鐨?2 ~ 6 琛屻?br />
鍚屾牱鐨勶細
next if (1 .. /^$/); # 璺寵繃鍓嶉潰鐨勭┖鐧借
s/^/> / if (/^$/ .. eof); # 鍦ㄦ鏂囧墠闈㈠姞涓?>
榪樺彲浠ヨ繖鏍蜂嬌鐢細
# parse mail messages
while (<>) {
$in_header = 1 .. /^$/;
$in_body = /^$/ .. eof;
if ($in_header) {
# do something
} else { # in body
# do something else
}
}
涓嬮潰鐨勪緥瀛愬睍紺轟簡".."鍜?..."鐨勫尯鍒細
@lines = (" - Foo",
"01 - Bar",
"1 - Baz",
" - Quux");
foreach (@lines) {
if (/0/ .. /1/) {
print "$_\n";
}
}
榪欎釜紼嬪簭鍙緭鍑築ar閭h銆傚鏋滃皢".."鎹㈡垚"..."錛屽垯榪樹細杈撳嚭Baz閭h銆?br />
涓嬮潰灞曠ず".."鎿嶄綔絎﹁繑鍥炲垪琛ㄥ瀷鍙橀噺鏃跺欑殑鍑犱釜渚嬪瓙錛?br />
for (101 .. 200) { print; } # print $_ 100 times
@foo = @foo[0 .. $#foo]; # an expensive no-op
@foo = @foo[$#foo-4 .. $#foo]; # slice last 5 items
鍚屾牱鍙互鐢ㄤ簬瀛楃涓詫細
@alphabet = ("A" .. "Z");
$hexdigit = (0 .. 9, "a" .. "f")[$num & 15];
@z2 = ("01" .. "31"); print $z2[$mday];
榪樺彲浠ョ敤浜庡崟涓瓧絎︼細
use charnames "greek";
my @greek_small = ("\N{alpha}" .. "\N{omega}");
use charnames "greek";
my @greek_small = map { chr } ord "\N{alpha}" .. ord "\N{omega}";
]]>