如何檢查 Perl 陣列中是否包含特定值?


在 Perl 中,我們可以使用 "grep" 關鍵字來檢查陣列中是否包含特定值。"grep" 函式用於從專案列表中篩選函式引數中提供的輸入。類似於 Linux,它使用給定的輸入查詢匹配的值。

grep() 方法

"grep" 是 Perl 的內建函式,我們可以將正則表示式傳遞給此函式。它將檢查輸入中是否存在匹配的值,並根據條件真假返回列表。

語法

由於它是 Perl 的內建函式,因此我們不需要包含任何庫即可使用 grep() 方法。其語法如下:

grep(regular_expression, @my_array)

現在我們對 "grep" 函式有了一些瞭解,讓我們透過一些例子來更好地理解它。

示例 1

考慮以下程式碼。這裡我們沒有使用 "grep" 函式。我們將簡單地列印陣列的元素,然後在下一個示例中新增 "grep" 關鍵字來查詢陣列是否包含特定元素。

use warnings;
use strict;
my @weekdays = qw(Mon Tue Wed Thu Fri Sat Sun);

print($weekdays[0]);
print("\n");
print($weekdays[2]);

輸出

如果在 Perl 編譯器上執行以上程式碼,您將在終端上得到以下輸出:

Mon
Wed

這裡,我們只是建立了一個數組,然後顯示了它的第一個和第三個元素。

示例 2

現在,讓我們在上面的示例中使用 "grep" 方法,看看它如何幫助我們查詢陣列中的元素。考慮以下程式碼。

use warnings;
use strict;
my @weekdays = qw(Mon Tue Wed Thu Fri Sat Sun);

print($weekdays[0]);
print("\n");
print($weekdays[2]);
print("\n");

if (grep(/^Mon/, @weekdays)) {
   print "found it";
} else {
   print "Not present in array";
}
print("\n");

if (grep(/^Ran/, @weekdays)) {
   print "found it";
} else {
   print "Not present in array";
}

輸出

如果在 Perl 編譯器上執行以上程式碼,您將在終端上得到以下輸出。

Mon
Wed
found it
Not present in array

觀察到第一個 "grep" 方法返回 "found it",因為 "Mon" 這個詞存在於陣列中。然而,在第二種情況下,"grep" 方法返回 "Not present in array",因為 "Ran" 這個詞不存在於給定的陣列中。

更新於:2022-12-26

7K+ 次瀏覽

啟動您的 職業生涯

完成課程獲得認證

開始學習
廣告