日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Perl新接触的小命令

發布時間:2025/4/9 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Perl新接触的小命令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

0,glob()函數

my @infile = glob("$indir/*.txt.gz"); ?#獲得指定路徑下的文件名,并形成列表,如果$indir為空,則自動匹配當前目錄下的指定文件名

1,sprintf()函數

my $rate_CG = sprintf("%.2f",$methy_CG*100/($methy_CG+$unmethy_CG)); ? ? ? ??#http://www.360doc.com/content/14/1229/14/12090552_436620848.shtml

2,判斷文件或目錄的各種屬性(轉載:http://blog.sina.com.cn/s/blog_5e425dd601019317.html)

示例:

if(-e "File-Name")
{
??print "TRUE\n";
}
else
{
??print "FALSE\n";
}

?檢測選項?????????????????含義

-r??????????????文件或目錄對此(有效的)用戶(effective user)或組是可讀的
-w?????????????文件或目錄對此(有效的)用戶或組是可寫的
-x?????????????文件或目錄對此(有效的)用戶或組是可執行的
-o?????????????文件或目錄由本(有效的)用戶所有
-R?????????????文件或目錄對此用戶(real user)或組是可讀的
-W????????????文件或目錄對此用戶或組是可寫的
-X?????????????文件或目錄對此用戶或組是可執行的
-O?????????????文件或目錄由本用戶所有
-e??????????????文件或目錄名存在
-z??????????????文件存在,大小為0(目錄恒為false)
-s??????????????文件或目錄存在,大小大于0(值為文件的大小,單位:字節)
-f???????????????為普通文本
-d??????????????為目錄
-l???????????????為符號鏈接
-S??????????????為socket
-p??????????????為管道(Entry is a named pipe(a“fifo”))
-b??????????????為block-special 文件(如掛載磁盤)
-c??????????????為character-special 文件(如I/O 設備)
-u??????????????setuid 的文件或目錄
-g??????????????setgid 的文件或目錄
-k??????????????File or directory has the sticky bit set
-t??????????????文件句柄為TTY(系統函數isatty()的返回結果;不能對文件名使用這個測試)
-T?????????????文件有些像“文本”文件
-B?????????????文件有些像“二進制”文件
-M?????????????修改的時間(單位:天)
-A?????????????訪問的時間(單位:天)
-C?????????????索引節點修改時間(單位:天)

3,操作Perl數組: shift, unshift, push, pop(轉載:https://cn.perlmaven.com/manipulating-perl-arrays)

和可以直接訪問單獨的數組元素一樣,Perl也提供了很多其它有趣的方式來操作數組。特別是,有些函數可以很方便有效的將Perl的數組作為棧或者隊列來使用。

pop

pop函數會刪除并返回數組的最后一個元素。

在第一個例子(3元素數組)中可以看到,pop函數刪除最后一個元素(下標最大)并返回它。

?

my @names = ('Foo', 'Bar', 'Baz'); my $last_one = pop @names;print "$last_one\n"; # Baz print "@names\n"; # Foo Bar

?如果原數組為空,pop函數會返回undef。

push

push?函數可以在數組的后面添加一個或多個值。(當然,也可以添加0個值,但是沒有用,不是么?)

?

my @names = ('Foo', 'Bar'); push @names, 'Moo'; print "@names\n"; # Foo Bar Moomy @others = ('Darth', 'Vader'); push @names, @others; print "@names\n"; # Foo Bar Moo Darth Vader

在這個例子中我們最初有個兩元素數組。之后我們向數組尾部push了一個標量,數組擴展成了3元素數組。

第二次調用push,我們push了@others數組的內容到@names尾部,把它擴充成5元素數組。

shift

shift函數會讓整個數組左移。設想一下,數組從左邊開始。數組的第一個元素會從數組“掉下來”,并成為函數的返回值(如果數組為空,shift?會返回?undef。)

這樣操作之后,數組會減少一個元素。

?

my @names = ('Foo', 'Bar', 'Moo'); my $first = shift @names; print "$first\n"; # Foo print "@names\n"; # Bar Moo

這和pop很像,但是它作用于數組索引的小端。

unshift

這是shift的反函數。unshift?會傳入一個或多個值(或者0個) 并把它放在數組的開頭,將其他元素右移動。

你可以向它傳單個的標量,那么這個值會成為數組的第一個元素。或者像第二個例子那樣,你可以傳遞第二個數組,那么第二個數組的所有元素(我們例中的@others)會復制到主數組的開頭(例中@names),并將其他元素向高索引方向移動。

?

my @names = ('Foo', 'Bar'); unshift @names, 'Moo'; print "@names\n"; # Moo Foo Barmy @others = ('Darth', 'Vader'); unshift @names, @others; print "@names\n"; # Darth Vader Moo Foo Bar

轉載于:https://www.cnblogs.com/Formulate0303/p/7239558.html

總結

以上是生活随笔為你收集整理的Perl新接触的小命令的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。