回答
如何:
if (grep /^x$/, ('q', 'w','e','r','t')) {
# Do something
}
這個工作,如果你是比較值是標量(字符串或數字)。
對於字符串,有一個很好的簡寫:
if (grep /^x$/, qw(q w e r t y)) {
# Do something
}
如果你不喜歡的正則表達式表示法(/^x$/
),有:
的grep {$ _ EQ 'X'} QW (qwerty)
你可以使用$_
來測試任何東西,而不僅僅是平等。
如果你想要做的是簡單的(可以在一條線上來表示),只是這會做:
do_something if grep /^x$/, qw(q w e r t y)
這就是"new"smart match operator可用於:
#!/usr/bin/env perl
use strict;
use warnings;
use 5.10.0;
my $thing = 'bar';
my @set = qw(foo bar baz);
say 'ok!' if $thing ~~ @set;
輸出:
ok!
注:這在古代版本的perl中不可用。在5.10之前,您想要使用grep
,如other answer,或者如果您的設置非常大,請使用first
of List::Util,因爲它不會在第一次匹配後迭代整個列表。
集合也可以使用散列建模:'my @vals = qw(foo bar baz);當事物在集合中時,我的%set = map {$ _ => 1} @vals;'then'$ set {$ thing}'是真實的。僅適用於字符串,但是是一個* O(1)*操作。非常適合頻繁(n> 1)訪問的大數據集。 – amon
@amon是的,太好了。 :)但是,我使用了名稱* set *,只是因爲在問題元素中排序可能並不重要,因爲OP詢問了類似於'a B'操作的東西。 – memowe
+1哇。感謝這個,很高興看到Perl5如何發展。最後,我在任何大型項目中都使用過Perl,當時它仍然是5.8.x - 我仍然愛Perl,但現在主要是替代我的'sed' /'awk'。 – Faiz
- 1. 調試:根據它的值找到一個JS變量/對象
- 2. 根據變量值對變量進行排序然後打印它們
- 3. 根據來自Perl的頻率對一組變量進行排序RegEx
- 4. 根據行值對行進行計數
- 5. 變量值測試
- 6. 根據變量值
- 7. 根據類中的變量對類的向量進行排序
- 8. 覆蓋application.conf變量進行測試
- 9. 根據R中的另一個值進行行值組合
- 10. 根據時間變量對分組數據幀進行排序colum
- 11. 如何根據對象的變量之一對對象列表進行排序
- 12. 用重複測量對數據進行應急測試
- 13. 根據組內的值對組進行排序
- 14. 根據字符串值對數組項目進行分組
- 15. 針對多個值測試變量?
- 16. QT測試 - 變量/對象丟失值
- 17. 如何根據Active Directory對NextPasswordChangeDate函數進行單元測試
- 18. NUnit用值數組進行測試
- 19. 如何根據列值對行更新進行分組?
- 20. 根據共享值對行進行分組
- 21. 如何對groovy測試進行分組?
- 22. 如何根據十六進制值測試一個字節?
- 23. SQL嘗試按ID進行分組並根據分類保持變量
- 24. 根據最後和當前觀測變量值創建變量
- 25. 使用自定義表單組件進行多變量測試
- 26. 單元測試類僅使用局部變量進行組合
- 27. 如何根據另一個數組中的並行值對一個數組中的數據進行分組?
- 28. 如何根據另一個數組對數組進行排序?
- 29. 根據另一個數組對數組進行排序,swift
- 30. 在Sitecore中對Sublayouts進行多變量測試
只是x是我的變量,所以可能$ x – Gianluca