亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Perl > 正文

Perl學習基本備忘錄

2020-10-31 15:18:36
字體:
來源:轉載
供稿:網友

1.Perl數組(1):

1) 初始化數組 @array = ( "stringA" , "stringB" , "stringC" );
2) 使用負索引循環檢索 print $array[-1];  #輸出索引為(-1 + 3) % 3 = 2 的 stringC
3) 動態增長 $array[4] = "stringD"; #雖然$array[3]還沒有使用,但在動態賦值$array[4]的使用,已經對$array[3]賦空置
4) 動態增長后的負索引 print $array[-1]; #輸出索引為(-1 + 5) % 5 = 4 的 stringD
5) print @array; #輸出數組中所有值的無空格串接
6) print "@array"; #輸出數組中所有值的空格分隔列表

2.Perl數組(2):

1) 數組中可以保存不同類型的數據(字符串、數值、數組)
2) $size = @array; 該語句把數組@array的數組長度值給標量$size,但如果在某些函數中直接使用@array,將不一定能得到數組長度
3) $#arrayname,該特殊變量保存著名為arrayname的數組的末尾索引值。
例如:  @arr = ( 1,2,3,4,5 );
則$#arr的值為4
$#arr=2;  這樣就把數組arr截斷,其元素4和5都被釋放,數組長度值也被改變
4) @array[-1,4,7] 將分別輸出索引值為-1,4,7的元素,這樣的調用返回值不是標量,而是數組
5) 多維數組使用多層方括號定義
@D3array = (
[ [1,2,3,4] , [5,6,7] , [8,9,0] ],
[ [ 'str1' , 'str2' , 'str3' ] , [345 , 67 , 8930] ],
[ [ 4,6,7] , [2] , [ "sud" ] ]
);

多維數組中每維的數組長度不需要一致,內部數據元素也不需要一致。
獲取第一維的數組長度方式是 $size = @array;
第二維         $size = @{$array[$i]};
第三維         $size = @{$array[$i][$j]};
.......         ......
關鍵是,只要@符號后跟一個數組變量時,就可以獲取其長度,但超過一維時,獲取數組變量的表達式要用{}包住

3.命令行執行Perl語句

1)perl -e '命令語句'   這樣可以直接在命令行執行Perl語句,不過要注意引號匹配規則。
2)perl -ne '命令語句'  filename 這樣可以逐行讀入filename中的數據,然后對每行都以命令語句處理。
例如 a) perl -ne 'print;'  abc.txt
在命令行界面逐行輸出abc.txt文件的數據
b) perl -ne 'print if /^192/ ' /etc/hosts > ~/hosts.tmp
把UNIX like系統中主機解釋文件的內容逐條寫到~/hosts.tmp文件下,不過只有符合以192開頭的行,才會被寫入,因為語句會執行篩選

3)'OS命令' | perl -ne '命令語句'  這樣可以把之前執行的OS命令的輸出作為輸入流,重定向到后面執行的perl命令中。
例如 a) ls -al | perl -ne 'print;'
把當前目錄下所有子文件、子目錄列出,并作為輸入數據輸入到perl命令中,再逐條打印

4.Perl引號規則

1)雙引號中的內容允許轉義和變量解析,縮寫是qq/內容/
2)單引號中的任何字符都不會被轉義和變量不會被解析,縮寫是q/內容/
3)反引號中的內容如果出現OS命令,該命令會被執行,并且結果數組會替換命令位置,或作為賦值的數據,縮寫是qx/內容/
4)上述縮寫中,符號對/內容/可以用其他符號替代,效果相同,例如qq(內容),qx!內容!,q+內容+等等,但字母好像不可以

5.here文檔規則

1)起始標簽沒有使用任何引號。對文檔內容的效果等同于使用了雙引號。
2)起始標簽使用了單引號。對文檔內容的效果等同于使用了單引號。
3)起始標簽使用了反引號。對文檔內容的效果等同于使用了反引號。

6.變量初始化

Perl中的變量在第一次出現時被分配內存。如果沒有顯式初始化,則會被賦值為0或者空字符串,具體怎樣表現要視乎該變量出現的上下文。
使用defined函數,defined $var 可以檢查變量是否已經被初始化。
使用undef函數,undef $var 可以釋放變量的內容。

7.特殊變量

1)$_, 該變量的值經常作為默認參數值,例如這樣調用 print; 不給予任何參數,則會打印出$_的值;當使用文件句柄讀入數據時,若不指定使用什么變量保存讀入數據,也會讀入到$_中。

8.Hash
1)Hash表定義語法:
 %aHash = (
  'key1'  => "value1",
  "key2" => 'value2',
    "key3" => 123,
    456 => "890"
) ;

2)Hash表中的鍵值可以是數字、字符串、數組甚至另一個hash表,不過如果要采用非字符串鍵值,則最好以單個鍵/值對賦值的形式插入到hash表中,而不是在初始化時插入。

3)對1)中的hash表,可以使用以下操作使用hash slice:

復制代碼 代碼如下:

a) @aValues = qw ( 123 456 789 0 );
@aHash{'newKey1' , 'newKey2' , 'newKey3' , 'newKey4'} = @aValues;

通過這樣的方式,可以創建新的hash表,如果名字相同(除了起始的%變為@),則會在原有的hash表中插入,而非創建。

b)對3)中修改后的aHash,可以采用以下方式獲取其值集合的子集:

復制代碼 代碼如下:

@subSet = @aHash{ 'newKey1' , 'key1' , 456 };

@subSet數組中保存元素的順序為賦值時指定鍵的順序。
其中 @hash表名 這種使用方式,稱為hash slice。

9.數組HASH嵌套

復制代碼 代碼如下:

%aHash = (
   "key1" => "value1",
   "key2" => [
         "str1",[ 1,2,3,4,5 ],
     {
              "key2.1" => "value2.1";
              "key2.2" => "value2.2";
     }
         ],
       "key3" => {
             "key3.1" => "value3.1",
             "key3.2" => "value3.2",
        },
);
print "$aHash{'key2'}->[1][3]/n" ; 輸出4
print "$aHash{'key2'}->[2]->{'key2.1'}/n"; 輸出value2.1
print "$aHash{'key3'}->{'key3.2'}/n"; 輸出value3.2

上述調用中->符號可以省略。

10.操作符上下文
1)當操作符的上下文是數值時,操作數中的開頭空格會被跳過,直接找到操作數中第一個數字,而隨后的字符串也會被跳過。若操作數的起始字符串不是空格也不是數字,則該操作數被解析為0。一個例外是當操作數的形式為科學記數格式時,會被作為一個整體解釋。

復制代碼 代碼如下:

$str1 = "  5  594asd";
$str2 = "10";
$str3 = "asd 10";
$str4 = "  4e3 asiddfi";
$sum = $str1 + $str2 + $str3 + $str4;  # $sum的值為4015 , 5 + 10 + 0 + 4000

2)當操作符的上下文是字符串時,所有操作數都被解析成字符串。

11.邏輯操作符解析
Perl的各個邏輯操作符都可以理解成短路的,即一旦得出有效結果,就不會繼續解析后面的表達式;并且返回最后一個解析的邏輯表達式的解析值,除了異或運算符。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产午夜精品视频免费不卡69堂| 国产亚洲精品一区二555| 亚洲美女av电影| 国内精品久久久久久久久| 亚洲国产天堂久久综合| 日韩欧美在线视频免费观看| 亚洲最大福利视频网| 欧美在线视频观看| 亚洲激情在线视频| 欧美亚洲国产视频| 日韩电影在线观看免费| 亚洲国产成人精品电影| 欧美日韩成人在线观看| 久久久久久久久久国产精品| 日韩电影在线观看免费| 91久久久精品| 5252色成人免费视频| 亚洲天堂男人的天堂| 久久影视电视剧免费网站清宫辞电视| 亚洲精品videossex少妇| 国产欧美一区二区三区四区| 欧美人与性动交| 夜色77av精品影院| 国产一区二中文字幕在线看| 国产精品国语对白| 中文字幕日本精品| 国产精品福利在线观看网址| 国产日韩综合一区二区性色av| 亚洲成色777777在线观看影院| 亚洲毛片一区二区| 日韩高清电影免费观看完整| 日本19禁啪啪免费观看www| 日韩最新av在线| 91国自产精品中文字幕亚洲| 国产日韩精品一区二区| 日韩中文字幕第一页| 亚洲电影第1页| 亚洲欧美日韩第一区| 国产日韩在线精品av| 国产精品r级在线| 黑人巨大精品欧美一区二区一视频| 中文欧美在线视频| 亚洲欧美国产一区二区三区| 亚洲成色777777在线观看影院| 欧美日韩亚洲一区二区三区| 九九久久久久久久久激情| 精品久久久久久久久久久久久| 国产www精品| 亚洲最大福利网| 97超级碰在线看视频免费在线看| 少妇久久久久久| 欧美精品福利在线| 久久精品国产91精品亚洲| 欧美黑人性视频| 岛国精品视频在线播放| 91精品国产高清久久久久久91| 久久夜色精品国产欧美乱| 欧美性xxxxxxxxx| 亚洲欧美另类在线观看| 亚洲国产欧美日韩精品| 久久精品中文字幕免费mv| 黄色一区二区在线| 亚洲图中文字幕| 国产欧美一区二区三区久久| 久久人人爽人人爽爽久久| 97在线观看免费高清| 欧美电影在线观看| 国产美女久久精品香蕉69| 日本久久久久亚洲中字幕| 国产日韩av高清| 午夜精品一区二区三区在线| 亚洲午夜激情免费视频| 国产日韩欧美电影在线观看| 亚洲精品国产综合区久久久久久久| xxxxx91麻豆| 欧美成人手机在线| 欧美亚洲伦理www| 欧美日韩午夜视频在线观看| 欧美成人中文字幕在线| 中文字幕日韩精品有码视频| 亚洲大尺度美女在线| 国产一区二区三区在线观看视频| 96pao国产成视频永久免费| 欧美精品电影在线| 久久免费视频观看| 欧美久久精品一级黑人c片| 国产一区玩具在线观看| 欧美激情二区三区| 一区二区亚洲精品国产| 精品视频—区二区三区免费| 成年无码av片在线| 91系列在线播放| 欧美日韩国产黄| 亚洲精品有码在线| 国产91在线播放九色快色| 亚洲三级 欧美三级| 国产女人18毛片水18精品| 色综合久久天天综线观看| 国产成人a亚洲精品| 亚洲一二在线观看| 亚洲国产小视频在线观看| 色噜噜久久综合伊人一本| 国产亚洲精品久久| 欧美日韩美女在线观看| 91精品久久久久久久久久久| 久热99视频在线观看| 亚洲国产精品福利| 国产精品日韩精品| 久久精品国产亚洲精品| 疯狂蹂躏欧美一区二区精品| 国产精品久久久久久中文字| 久久视频免费在线播放| 欧美在线视频网| 一个色综合导航| 精品国产欧美成人夜夜嗨| 97国产suv精品一区二区62| 国产精品久久久久久久久久久不卡| 久久免费成人精品视频| 国产精品视频资源| 亚洲最大福利网站| 国产精品久久激情| 庆余年2免费日韩剧观看大牛| 美女视频黄免费的亚洲男人天堂| 国产专区精品视频| 久久久国产精品亚洲一区| 欧美性猛交99久久久久99按摩| 成人久久18免费网站图片| 久久久精品视频成人| 久久久久久久一区二区| 国产精品久久久久久超碰| 欧美亚洲日本网站| 永久免费看mv网站入口亚洲| 日韩精品极品在线观看播放免费视频| 久久国产精品视频| 亚洲精品xxxx| 欧美日韩加勒比精品一区| 91精品国产91久久久久久最新| 国产精品入口免费视| 欧美国产日韩一区| 国产亚洲免费的视频看| 26uuu亚洲伊人春色| 中文字幕在线观看日韩| 国产成人自拍视频在线观看| 黄色一区二区三区| 九九视频直播综合网| 亚洲国产精久久久久久久| 午夜精品一区二区三区视频免费看| 性欧美长视频免费观看不卡| 亚洲毛片在线观看.| 精品久久久久久亚洲国产300| 久久精品亚洲国产| 国产亚洲精品久久久| 国产精品国产亚洲伊人久久| 国产精品久久91| 久久精品视频在线| 欧美黄色小视频| 日本久久久久久久久久久| 欧美亚洲第一页| 日韩欧美视频一区二区三区| 日韩免费高清在线观看| 高清欧美一区二区三区| 欧美专区在线播放| 亚洲qvod图片区电影| 欧美大肥婆大肥bbbbb|