回答
$str = "A";
@arr = ('A','B','C','D');
print "Yes" if $str ~~ @arr;
'print「是」if'A'~~ ['A','B','C','D'] ;'也可以,但使用smartmatch可能不是最好的主意。 –
智能匹配是experimental,將變更或消失,在未來的版本。您將在Perl 5.18+版本中得到相同的警告。下面是選擇:
使用grep
#!/usr/bin/perl
use strict;
use warnings;
my $str = "A";
print "Yes" if grep {$_ eq 'A'} qw(A B C D);
使用任何
#!/usr/bin/perl
use strict;
use warnings;
use List::Util qw(any);
print any { $_ eq 'A' } qw(A B C D);
使用哈希
#!/usr/bin/perl
use strict;
use warnings;
my @array = qw(A B C D);
my %hash = map { $_ => 1 } @array;
foreach my $search (qw(A)) #enter list items to be searched here
{
print exists $hash{$search};
}
另請參閱:
- match::smart - 提供匹配運算符| M |其行爲與(比如Perl 5.18)實驗性智能匹配算子或多或少相同。
- Syntax::Feature::Junction - 提供關鍵字的任何,全部,無,或一個
- 您也可以使用List::Util::first這是更快,因爲它停止迭代,當它找到一個匹配。
我使用的是perl v5.16.3,我沒有收到任何警告。 – CJ7
因爲它在5.18+版本中已被棄用。 –
List :: Util :: first和List :: Util :: any都會在找到匹配時立即停止迭代,所以我不確定爲什麼要提供'first'作爲替代。 'first'還要求你檢查undef是否有任何列表元素可能是虛假的:如果首先定義{...} @ array',則說'匹配',而不是簡單地說'匹配'如果任何{...} @ array' – ThisSuitIsBlackNot
您可以將您的數組轉換爲散列。然後你可以有效地(在不變的時間內或者(1))檢查你的字符串是否在原始數組中。下面是關於如何查找字符串'C'
兩種不同的方法:
#!/usr/bin/perl
use strict;
use warnings;
my %hash1 = map {$_ => 0} qw/A B C D/;
print 'Yes' if exists $hash1{'C'};
#!/usr/bin/perl
use strict;
use warnings;
my %hash2;
@hash2{qw/A B C D/} =();
print 'Yes' if exists $hash2{'C'};
當然像往常一樣在Perl,TIMTOWTDI但。
- 1. 檢查變量是否在列表中
- 2. Python 3如何檢查一個變量是否在列表中
- 3. 如何檢查變量是否在python
- 4. 如何檢查參數值是否在常量列表中
- 5. 如何檢查變量是否爲CFString?
- 6. 如何檢查變量是否定義?
- 7. 如何檢查變量是否爲空?
- 8. 如何檢查一個列表是否在Python中有重複的變量?
- 9. JavaScript:如何檢查變量是否存在變量名?
- 10. 檢查整數是否存在於變量幾何序列中
- 11. 如何檢查空格/製表符是否在變量前面?
- 12. 如何檢查SQL Server中的表變量是否爲空?
- 13. Python:檢查項目是否存在可變數量的列表
- 14. 如何檢查變量是否是sympy表達式?
- 15. 檢查是否只設置了變量列表中的一個變量
- 16. 如何檢查列表中的每個元素是否相同(設置)變量
- 17. 如何檢查列表中的多個元素是否等於變量?
- 18. 如何檢查數組是否列表?
- 19. 如何檢查jquery中是否存在變量
- 20. 如何檢查數組中是否存在變量?
- 21. 如何檢查目標變量是否在數組中?
- 22. 如何檢查rspec中是否存在輔助方法/變量?
- 23. 如何在UNIX中檢查變量是否爲編號
- 24. 在Emacs Lisp中,如何檢查變量是否被定義?
- 25. 如何檢查變量是否在Prolog中實例化?
- 26. 如何檢查變量是否未在Swift中初始化?
- 27. 如何檢查廣播變量在Spark 2.0中是否有效?
- 28. 如何在Perl中檢查幾個變量是否爲空
- 29. 如何檢查變量是否在D中聲明?
- 30. 如何檢查變量是否在內存中使用javascript
smartmatch'~~'但它是實驗性的。 – mkHun
有沒有辦法使用匿名數組,或者你必須做我在我的答案中做了什麼? – CJ7
@ CJ7:不相關,但我注意到,你問的大部分問題都處於開放狀態。請接受這些問題的答案以關閉它們(因爲您對答案感到滿意)。謝謝。另見:http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work –