2012-11-22 247 views
2

我有兩個數組,一個固定爲8個字母,另一個取決於用戶。我必須採取用戶輸入並放入一個數組(完成),但我需要檢查用戶輸入(它是一個字)字母在另一個數組中嗎?我該怎麼做 ?如何檢查一個數組的元素是否在另一個數組中?

+4

向我們展示你有什麼至今。 –

+0

查看Perl常見問題的[本節](http://perldoc.perl.org/perlfaq4.html#Data:-Arrays),其中涵蓋了Perl數組操作的大部分內容。 –

回答

4

您可以使用Perl的(v5.10 +)smartmatch運算符~~來檢查字符串是否是數組的一個元素。匹配是大小寫敏感的:

use strict; 
use warnings; 

my @words = map lc, qw/This is a test/; 

print 'Enter a word: '; 
chomp(my $entry = <>); 

print qq{The word "$entry" is} 
    . (lc $entry ~~ @words ? '' : ' not') 
    . ' in @words.' 

採樣運行:

Enter a word: This 
The word "This" is in @words. 
+0

以及如果我不使用5.10或更大。我有5.8.8 –

+0

@PavelMalinov如果'@ words'很短,您可以使用'grep'而不是智能匹配。對於較大的單詞列表,來自[List :: Util](http://p3rl.org/List::Util)的「first」應該更高效 – memowe

+1

@memowe - 好的建議。另一個選擇是'使用Syntax :: Keyword :: Junction qw/any /;'然後'any(@words)eq lc $ entry'。 – Kenosis

相關問題