人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

perl案例區分圖文詳細教程之10

perl案例區分圖文詳細教程之10

更新時間:2022-08-25 文章作者:未知 信息來源:網絡 閱讀次數:

一、數組變量的限制

  在前面講的數組變量中,可以通過下標訪問其中的元素。例如,下列語句訪問數組@array的第三個元素:
$scalar = $array[2];
雖然數組很有用,但它們有一個顯著缺陷,即很難記住哪個元素存貯的什么內容。假如我們來寫一個程序計算某文件中首字母大寫的單詞出現的次數,用數組來實現就比較困難,程序代碼如下:

1 : #!/usr/local/bin/perl
2 :
3 : while ($inputline = ) {
4 : while ($inputline =~ /b[A-Z]S+/g) {
5 : $word = $&;
6 : $word =~ s/[;.,:-]$//; # remove punctuation
7 : for ($count = 1; $count <= @wordlist;
8 : $count++) {
9 : $found = 0;
10: if ($wordlist[$count-1] eq $word) {
11: $found = 1;
12: $wordcount[$count-1] += 1;
13: last;
14: }
15: }
16: if ($found == 0) {
17: $oldlength = @wordlist;
18: $wordlist[$oldlength] = $word;
19: $wordcount[$oldlength] = 1;
20: }
21: }
22: }
23: print ("Capitalized words and number of occurrences:n");
24: for ($count = 1; $count <= @wordlist; $count++) {
25: print ("$wordlist[$count-1]: $wordcount[$count-1]n");
26: }

運行結果如下:

Here is a line of Input.
This Input contains some Capitalized words.
^D
Capitalized words and number of occurrences:
Here: 1
Input: 2
This: 1
Capitalized: 1

這個程序每次從標準輸入文件讀一行文字,第四行起的循環匹配每行中首字母大寫的單詞,每找到一個循環一次,賦給簡單變量$word。在第六行中去掉標點后,查看該單詞是否曾出現過,7~15行中在@wordlist中挨個元素做此檢查,如果某個元素與$word相等,@wordcount中相應的元素就增加一個數。如果沒有出現過,即@wordlist中沒有元素與$word相等,16~20行給@wordlist和@wordcount增加一個新元素。

二、定義

  正如你所看到的,使用數組元素產生了一些問題。首先,@wordlist中哪個元素對應著哪個單詞并不明顯;更糟的是,每讀進一個新單詞,程序必須檢查整個列表才能知道該單詞是否曾經出現過,當列表變得較大時,這是很耗費時間的。
這些問題產生的原因是數組元素通過數字下標訪問,為了解決這類問題,Perl定義了另一種數組,可以用任意簡單變量值來訪問其元素,這種數組叫做關聯數組,也叫哈希表。
為了區分關聯數組變量與普通的數組變量,Perl使用%作為其首字符,而數組變量以@打頭。與其它變量名一樣,%后的第一個字符必須為字母,后續字符可以為字母、數字或下劃線。

三、訪問關聯數組的元素

  關聯數組的下標可以為任何簡單/標量值,訪問單個元素時以$符號打頭,下標用大括號圍起來。例如:

$fruit{"bananas"}
$number{3.14159}
$integer{-7}

簡單變量也可作為下標,如:
$fruit{$my_fruit}

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 阿合奇县| 章丘市| 西乌珠穆沁旗| 宿州市| 凤山市| 富宁县| 孝昌县| 沙湾县| 察哈| 井陉县| 平陆县| 莱芜市| 池州市| 浙江省| 明光市| 永修县| 黔东| 马公市| 池州市| 沙田区| 保靖县| 鄢陵县| 临漳县| 吉木萨尔县| 永丰县| 乌拉特前旗| 肃宁县| 武功县| 临沂市| 双柏县| 饶河县| 安陆市| 阿克陶县| 司法| 芜湖县| 洪泽县| 林州市| 宜城市| 栾城县| 家居| 黄龙县|