
PerlでIF文の条件式をもっとスマートに書きたいのですが。。。
以下のようなIF文の条件式を上手く書く方法がありますでしょうか?
if($flg[0] == 1 || $flg[1] == 1 || $flg[2] == 1 || $flg[3] == 1 || $flg[4] == 1 || $flg[5] == 1 || $flg[6] == 1 || $flg[7] == 1 || $flg[8] == 1 || $flg[9] == 1)){
$flg[i]は配列@flgの各要素です。
上記のように「||」(論理和:または)でつないで書くのではなく、
もっとスマートに書きたいのですが、
何か良い方法はないでしょうか??
ご存じの方がいらっしゃいましたら、どうかご教示ください。
よろしくお願い致します。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
新しい (5.10.1 以降の) Perl なら
if (1 ~~ @flg[0..9])
でよかったりする.
参考URL:http://perldoc.perl.org/perlop.html#Smartmatch-O …
No.1
- 回答日時:
まず、思いつくのは grep を使う方法ですね。
http://www.ibm.com/developerworks/jp/linux/libra …
if ((grep { $_ == 1 } @flg) > 0) {
# 何らかの処理
}
@flg の要素が0か1だけなのであれば、↓の様な方法も有るかと。
if ((join '', @flg) > 0) {
# 何らかの処理
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Dim flag(4) as boolean で配列...
-
Strawberry Perl for Windows ...
-
エクセルVBAでTransposeの不思議
-
マクロ Publicでの配列定義
-
VBA 二次元配列 ループの書き方
-
VBA横データを縦にしたいです
-
VBAでの一時停止と再開の方法
-
UWSCに制限時間を付けたいです
-
テキストボックスの名前に変数...
-
C言語でファクト関数を使わずに...
-
xmplayの使い方
-
ループフリー
-
Do whileでExitせず、ループの...
-
csh foreachで「*」でエラ...
-
Can't use string ("0") as an ...
-
CやJAVa,Rubyなどプログラミン...
-
GIFアニメをループさせたくない
-
CSVファイルの特定の行だけを読...
-
エクセルの当番表を作っていま...
-
連想配列のサイズ制限
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAのautofilter、criteriaの配...
-
エクセルVBAでTransposeの不思議
-
perlで2次元配列をサブルーチ...
-
Strawberry Perl for Windows ...
-
マクロ Publicでの配列定義
-
クラスに配列を渡す方法
-
リストボックスに縦スクロール...
-
二次元配列のインデックスについて
-
Dim flag(4) as boolean で配列...
-
与えられた配列の順にソートす...
-
Excel VBA ユーザーフォームの...
-
VBA 二次元配列の1つ目を増...
-
プログラミング アルゴリズム
-
複数の配列の全ての組み合わせ...
-
二次元配列における要素数のは...
-
VB6で配列の最大値を簡単に求め...
-
バイナリデータの検索(VB.NET2008)
-
VBA 二次元配列 ループの書き方
-
VBA 多次元配列を用いてグルー...
-
VBA 条件
おすすめ情報