一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術(shù)及教程分享平臺!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - perl - Perl中常見符號與操作

Perl中常見符號與操作

2020-06-24 10:11腳本之家 perl

這篇文章主要介紹了Perl中常見符號與操作,需要的朋友可以參考下

注釋:

1.單行: #print
2.多行:=pod …. =cut

查詢perl相關(guān):

Perldoc perlvar($a,$$,$”...)
Perldoc perfunc(sort…)
Perldoc perl 查看perldoc文章列表
Perldoc –q 正則表達(dá)式
Perldoc –f 函數(shù)名
Perldoc module_name 查看模塊
Perldoc –v 變量名 查看變量
Perldoc perlop 查看操作符

查看模塊相關(guān)函數(shù):

1.Perl –d –e 0
2.Use module::submod
3.S module::submod

測試程序運(yùn)行時(shí)間:

1.Unix下:Time perl5 perl_program
2.程序內(nèi)添加:$end_time = time();$elapsed_time = $^T - $end_time; print $elapsed_time;
3.perl程序內(nèi)使用benchmark模塊: use benchmark; timestamp1 = new benchmark; {Code};timesamp2 = new benchmark; time_run = timediff(timestamp2 - timesamp1);

符號:

<=> Spaceship operator,太空船操作符:三向的比較數(shù)字操作符。$a<=>$b 這個(gè)操作符比較兩個(gè)數(shù)字,返回-1,0,1。返回1:$a>$b,返回0:$a=$b,返回-1:$a<$b。
$a,$b在sort中使用時(shí)代表第一個(gè)和第二個(gè)進(jìn)來的標(biāo)量或數(shù)組等
$! 根據(jù)上下文內(nèi)容返回錯(cuò)誤號或者錯(cuò)誤串
$” 列表分隔符
$# 打印數(shù)字時(shí)默認(rèn)的數(shù)字輸出格式
$$ Perl解釋器的進(jìn)程ID
$% 當(dāng)前輸出通道的當(dāng)前頁號
$& 與上個(gè)格式匹配的字符串
$( 當(dāng)前進(jìn)程的組ID$) 當(dāng)前進(jìn)程的有效組ID
$* 設(shè)置1表示處理多行格式.現(xiàn)在多以/s和/m修飾符取代之.
$, 當(dāng)前輸出字段分隔符
$. 上次閱讀的文件的當(dāng)前輸入行號
$/ 當(dāng)前輸入記錄分隔符,默認(rèn)情況是新行
$: 字符設(shè)置,此后的字符串將被分開,以填充連續(xù)的字段.
$; 在仿真多維數(shù)組時(shí)使用的分隔符.
$? 返回上一個(gè)外部命令的狀態(tài)
$@ Perl解釋器從eval語句返回的錯(cuò)誤消息
$[ 數(shù)組中第一個(gè)元素的索引號
$\ 當(dāng)前輸出記錄的分隔符
$] Perl解釋器的子版本號
$^ 當(dāng)前通道最上面的頁面輸出格式名字
$^A 打印前用于保存格式化數(shù)據(jù)的變量
$^D 調(diào)試標(biāo)志的值
$^E 在非UNIX環(huán)境中的操作系統(tǒng)擴(kuò)展錯(cuò)誤信息
$^F 最大的文件捆述符數(shù)值
$^H 由編譯器激活的語法檢查狀態(tài)
$^I 內(nèi)置控制編輯器的值
$^L 發(fā)送到輸出通道的走紙換頁符
$^M 備用內(nèi)存池的大小
$^O 操作系統(tǒng)名
$^P 指定當(dāng)前調(diào)試值的內(nèi)部變量
$^R 正則表達(dá)式塊的上次求值結(jié)果
$^S 當(dāng)前解釋器狀態(tài)
$^T 從新世紀(jì)開始算起,腳步本以秒計(jì)算的開始運(yùn)行的時(shí)間
$^V perl版本
$^W 警告開關(guān)的當(dāng)前值
$^X Perl二進(jìn)制可執(zhí)行代碼的名字 (perl指令)
$_ 默認(rèn)的輸入/輸出和格式匹配空間
$| 控制對當(dāng)前選擇的輸出文件句柄的緩沖
$~ 當(dāng)前報(bào)告格式的名字
$` 在上個(gè)格式匹配信息前的字符串
$' 在上個(gè)格式匹配信息后的字符串
$+ 與上個(gè)正則表達(dá)式搜索格式匹配的最后一個(gè)括號
$< 當(dāng)前執(zhí)行解釋器的用戶的真實(shí)ID
$ 含有與上個(gè)匹配正則表達(dá)式對應(yīng)括號結(jié)果
$= 當(dāng)前頁面可打印行的數(shù)目
$> 當(dāng)前進(jìn)程的有效用戶ID包含正在執(zhí)行的腳本的文件名
$ARGV 從默認(rèn)的文件句柄中讀取時(shí)的當(dāng)前文件名
%ENV 環(huán)境變量列表
%INC 通過do或require包含的文件列表
%SIG 信號列表及其處理方式
@_ 傳給子程序的參數(shù)列表
@ARGV 傳給腳本的命令行參數(shù)列表
@INC 在導(dǎo)入模塊時(shí)需要搜索的目錄列表
$-[0]和$+[0] 代表當(dāng)前匹配的正則表達(dá)式在被匹配的字符串中的起始和終止的位置

while(){ 
  my($date,$desc,$income,$expend) = unpack(“A10xA27xA7xA*”); 

簡單說明:

  A10: A表示ASCII,A10表示10個(gè)ASCII character, Date的表示就是用10個(gè)ASCII碼;
  x  : x表示null byte也等于skip a byte,也就是說我們要跳過一個(gè)char(|),
  A27: 然后接著27個(gè)ASCII char,
  x  : 然后跳過一個(gè)vhar,
  A7 : 再接上7個(gè)ASCII,
  x  : 在跳過一個(gè)char,
  A* : 最后A*表示不管后面char有多少個(gè),全含括進(jìn)來。

在通常的子例程調(diào)用過程中,并不會(huì)搜索@ISA數(shù)組。但如果用戶以調(diào)用方法的語法來調(diào)用子程序的話,程序就會(huì)去搜索@ISA數(shù)組。

  @ISA     = qw(Exporter Net::Cmd IO::Socket::INET);
 
vars 是一個(gè)Perl的pragma,用來預(yù)定義全局變量。這些預(yù)定義后的全局變量qw()列表中的在整個(gè)Perl文件中皆可使用,使用了use strict也不會(huì)報(bào)警:
use vars qw($TELNET_IAC $TELNET_IP $TELNET_DM);
($TELNET_IAC,$TELNET_IP,$TELNET_DM) = (255,244,242);


$-[0]和$+[0] 代表當(dāng)前匹配的正則表達(dá)式在被匹配的字符串中的起始和終止的位置
|- 打開一個(gè)“輸出到”管道,那么你就可以向你打開的這個(gè)文件句柄寫數(shù)
-| 打開一個(gè)“來自”管道,那么你可以從這個(gè)文件句柄讀取數(shù)據(jù)


#!/usr/bin/perl
print $_.”\n”;#缺省輸入。
print @_.”\n”;#函數(shù)參數(shù)


#局域變量
print $&.”\n”;#當(dāng)字符串用于模式匹配時(shí),字符串被分成了三部分:匹配以前的部分,匹配上的部分,匹配以后的部分。任何部分都可能是空,這個(gè)變量指最近一次匹配上的字符串。
print $'.”\n”;#匹配部分以后的部分。
print $`.”\n”;#最近一次匹配,匹配部分以前的部分。
print $+.”\n”;#最后一個(gè)圓括號中的子表達(dá)式匹配的部分。
print $*.”\n”;#缺省情況下,Perl 為了加快匹配速度,假設(shè)模式中不包括新行,也就是只執(zhí)行單行匹配。如果要執(zhí)行多行匹配,就要把此值設(shè)成 1。
print @+.”\n”;#這個(gè)數(shù)組保存當(dāng)前匹配的最后成功子匹配的結(jié)尾的偏移量。$+[0]是整個(gè)匹配的偏移量。$+[1]是$1 結(jié)束的偏移量,$+[2]是$2 結(jié)束的偏移量。
print @-.”\n”;#$-[0] 是最后一個(gè)成功的匹配的開始的偏移量。$-[n]是第 n 個(gè)子模式的偏移量,或 undef,如果沒有匹配上的話。$-[0]也可
以看成是整個(gè)匹配開始的偏移量。$-[1]是$1開始的地方,$-[2] 是$2 開始的地方,依次類推。
print
#輸入、輸出變量
print $..”\n”;#最近一次執(zhí)行讀操作的當(dāng)前行數(shù)。顯式的關(guān)閉文件句柄重置行數(shù)。
print $/.”\n”;#輸入記錄分隔符,缺省值是新行。
print $,.”\n”;#print操作的輸出域分隔符。
print $\..”\n”;#print 操作的輸出記錄分隔符。通常用于省略換行符。
print $”.”\n”;#當(dāng)數(shù)組轉(zhuǎn)換成字符串時(shí),元素缺省以空格分隔(例如,當(dāng)打印數(shù)組時(shí))。這個(gè)變量即代表這個(gè)分隔符,缺省是空格。
print $^L.”\n”;#當(dāng)執(zhí)行一個(gè)進(jìn)紙動(dòng)作時(shí)輸出的字符。缺省是 \f。
print $:.”\n”;#就是目前可以作為折行的字符集合。缺省值是” \n“(也就是空白,換行字符,以及連字號)。
print $^A.”\n”;#格式化行的寫收集器的當(dāng)前值。


#錯(cuò)誤變量
print $?.”\n”;#$CHILD_ERROR 包含了最近一次執(zhí)行的外部程序結(jié)束狀態(tài)。這些程序以辦是通過管道,反小點(diǎn) (”) 或system 函數(shù)執(zhí)行的。
print $!.”\n”;#$OS_ERROR, $ERRNO 包含了系統(tǒng)的錯(cuò)誤。如果用在數(shù)值的地方,就是系統(tǒng)錯(cuò)誤碼;如果用在字符串的地方,就是錯(cuò)誤信息字符串。
print $^E.”\n”;#$EXTENDED_OS_ERROR 在某些平臺,返回?cái)U(kuò)展錯(cuò)誤信息。
print $@.”\n”;#$EVAL_ERROR 從上一個(gè) eval 命令的 Perl 語法錯(cuò)誤信息


#系統(tǒng)變量
print $$.”\n”;#運(yùn)行當(dāng)前腳本的 Perl 進(jìn)程的 pid。
print $<.”\n”;#當(dāng)前進(jìn)程的實(shí)際用戶標(biāo)識符(uid)。
print $>.”\n”;#當(dāng)前進(jìn)程的有效用戶標(biāo)識符。
print $(.”\n”;#當(dāng)前進(jìn)程的實(shí)際組標(biāo)識符(gid)。
print $).”\n”;#當(dāng)前進(jìn)程的有效組標(biāo)識符。
print $0.”\n”;#正在執(zhí)行的 Perl 腳本的文件名稱。這個(gè)參數(shù)與執(zhí)行時(shí)輸入有關(guān)
print $[."\n";#數(shù)組中第一個(gè)元素的序號或子串中第一個(gè)字符的序號。缺省是 0。
print $].”\n”;#返回版本號,加上補(bǔ)丁級別除以 1000。
print $M.”\n”;#$M 的內(nèi)容能用作緊急內(nèi)存池,以便 Perl 出out-of-memory 錯(cuò)誤時(shí)使用。使用$M 要求 Perl 進(jìn)行特殊的編譯。
print $^F.”\n”;#最大的系統(tǒng)文件描述符,通常是 2。
print $^I.”\n”;#原地編輯擴(kuò)展的當(dāng)前值。可使用 undef 禁止原地編輯。
print $^W.”\n”;#警告開關(guān)的當(dāng)前值,真或假。
print $^T.”\n”;#當(dāng)前腳本開始運(yùn)行的時(shí)間。以秒為單位,從 1970年開始。
print $^O.”\n”;#編譯 Perl 本身時(shí)的操作系統(tǒng)名稱。
print $^X.”\n”;#二進(jìn)制 Perl 執(zhí)行文件的名稱。
print $^D.”\n”;#調(diào)試標(biāo)志的當(dāng)前值。
print $^P.”\n”;#是否打開調(diào)試。
print $ARGV.”\n”;#當(dāng)從< >讀入時(shí)的當(dāng)前文件名。


#其它
print @ARGV.”\n”;#命令行參數(shù)。
print $ARGV.”\n”;#當(dāng)前文件的文件名,代表標(biāo)準(zhǔn)輸入<STDIN>。
print @INC.”\n”;#尋找 Perl 腳本的地址表。
print %INC;#通過 do 或 requir 包含的文件名的目錄。
print $#ARGV 數(shù)組長度-1

延伸 · 閱讀

精彩推薦
  • perlperl命令行參數(shù)內(nèi)建數(shù)組@ARGV淺析

    perl命令行參數(shù)內(nèi)建數(shù)組@ARGV淺析

    這篇文章主要介紹了perl命令行參數(shù)內(nèi)建數(shù)組@ARGV淺析,本文重點(diǎn)在于講解@ARGV的用法,并通過實(shí)例來說明,需要的朋友可以參考下 ...

    perl教程網(wǎng)6162020-06-18
  • perlPerl的經(jīng)典用法分享

    Perl的經(jīng)典用法分享

    Perl的經(jīng)典用法分享,學(xué)習(xí)perl的朋友可以參考下 ...

    腳本之家6562020-06-06
  • perlperl常見問題集合之二

    perl常見問題集合之二

    哪些平臺上有 Perl?要到哪里去找? Perl的標(biāo)準(zhǔn)發(fā)行版(由 perl 發(fā)展小組負(fù)責(zé)維護(hù))僅以原始碼形式發(fā)行。您可在 http: //www.perl.com/CPAN/src/latest.tar.gz處取得。這個(gè)檔...

    腳本之家2102020-05-29
  • perlPerl使用nginx FastCGI環(huán)境做WEB開發(fā)實(shí)例

    Perl使用nginx FastCGI環(huán)境做WEB開發(fā)實(shí)例

    這篇文章主要介紹了Perl使用nginx FastCGI環(huán)境做WEB開發(fā)實(shí)例,實(shí)現(xiàn)了路由系統(tǒng)和模板系統(tǒng),需要的朋友可以參考下...

    Perl教程網(wǎng)2412020-06-18
  • perlperl pop push shift unshift實(shí)例介紹

    perl pop push shift unshift實(shí)例介紹

    perl的pop跟push操作數(shù)組的最右邊,shift跟unshift操作數(shù)組的最左邊 ...

    腳本之家4612020-06-10
  • perlperl use vars pragma使用技巧

    perl use vars pragma使用技巧

    perl 中的vars是perl中的一個(gè)pragma(預(yù)編譯指示符),專門用來預(yù)定義全局變量,這些預(yù)定義后的全局變量在qw()列表中,在整個(gè)引用perl文件中皆可使用,即便使...

    perl教程網(wǎng)6812020-06-16
  • perlPerl List::Util模塊使用實(shí)例

    Perl List::Util模塊使用實(shí)例

    這篇文章主要介紹了Perl List::Util模塊使用實(shí)例,本文給出掃描符合條件的某個(gè)列表并取出第一個(gè)符合條件的、求1到1000之間的和 、求一組數(shù)字的最大值與最小...

    腳本之家4712020-06-22
  • perlPerl從文件中讀取字符串的兩種實(shí)現(xiàn)方法

    Perl從文件中讀取字符串的兩種實(shí)現(xiàn)方法

    有時(shí)候我們需要從文件中讀取字符串,這里簡單介紹下, 需要的朋友可以參考下 ...

    腳本之家6252020-06-08
主站蜘蛛池模板: 成人免费视频一区二区 | 成人精品一级毛片 | 国产成人8x视频一区二区 | 亚洲乱码尤物193yw在线播放 | 996免费视频国产在线播放 | 国产色视频一区二区三区 | 亚洲精品视 | 日本高清免费观看 | 美女禁区视频免费观看精选 | 亚洲国产在线2o20 | 免费看美女被靠到爽 | 欧美大奶艳星 | 国产午夜亚洲精品一区网站 | 2022超帅男同gayxxx | 性色欲情网站IWWW九文堂 | 91探花在线观看 | 日本男女视频 | chinese调教踩踏视频 | 欧美日韩一级视频 | 国内精品久久久久影院中国 | 校花在公车上被内射好舒 | 激情六月丁香婷婷四房播 | 亚洲欧洲日产国码天堂 | 欧美日韩精品一区二区三区视频在线 | 69萝莉| 天色综合 | 99久久免费看国产精品 | 国产精品成人一区二区1 | 国产精品自拍一区 | 8x在线永久成人影院 | 国产nv精品你懂得 | 国产精品成人免费 | 无码专区aaaaaa免费视频 | 天天色天天色天天色 | 免费在线观看成年人视频 | 青草热视频 | 欧美牛逼aa| 日本不卡在线视频高清免费 | 九九精品视频在线播放 | 18国产精品白浆在线观看免费 | 全日本爽视频在线 |