タイトルの通りです

if文などで長々と書くのが面倒なのですが何かいい方法はないのでしょうか?
以前はif($xxx =~ /^1$|^5$|^11$/)などと書いていたのですが、正規表現を使うと処理が遅いんですね

なるべく処理が軽くて簡潔な書き方がありましたら紹介してください

A 回答 (4件)

Perl 5.10.0では、switch文が新規導入されてます。



given ($foo) {
when (/^abc/) { $abc = 1; }
when (/^def/) { $def = 1; }
when (/^xyz/) { $xyz = 1; }
default { $nothing = 1; }
}
    • good
    • 0
この回答へのお礼

今までなんでないんだろうと思っていたswitch文が導入されていたんですね
...の前にそもそもperl5.10が出ていたことすら知りませんでした

ありがとうございました

お礼日時:2008/01/10 14:55

モジュールを追加してもいいのなら。



use Perl::Junction qw(any);

my @nums = (1, 5, 11);

if ($xxx == any(@nums)) {
}

Perl6::Junction - Perl6 style Junction operators in Perl5. - search.cpan.org
http://search.cpan.org/~cfranks/Perl6-Junction-1 …

速度的にどうなのかは知らない。
    • good
    • 0
この回答へのお礼

プログラムを提供する相手方がデフォルトのままで、と言われましたのでモジュールを追加することはできないようです
初めに書いておくべきでしたね、すみません
Perl6からは上記の記述が使えるとのことなのでリリースが待ち遠しいです

ありがとうございました

お礼日時:2008/01/10 14:33

配列なら


my @array = (1, 5, 11);
if (grep {$_ == $xxx } @array) { ... }
とかかな. ハッシュなら
my %valid = ( 1 => 1, 5 => 1, 11 => 1 );
if ($valid{$xxx}) { ... }
のような感じ (「ハッシュを使った重複チェック」のバリエーション).
あ,
if ($xxx == (1 or 5 or 11)) { ... }
のような形は, (そのままじゃないけど) Perl6 でサポートされる予定になっています. いつのことかは知りませんが.
    • good
    • 0
この回答へのお礼

遅くなりました

そういえばgrepがありましたね
最近mapの方ばかり使っていたので存在を忘れていました
今のところ簡略な書き方はできないようなので、記述が長くなりそうならgrepで対応しようと思います

ありがとうございました

お礼日時:2008/01/10 13:23

配列なりハッシュなりを使う... のかなぁ?

    • good
    • 0
この回答へのお礼

やっぱりそうなんですかね?
if文の条件式のなかではforやforeachが使えない(?)みたいなので今のところ確認できていませんでしたがおそらくそれが正解なのでしょうね
個人的にはif($xxx == ( 1 or 5 or 11))のようなことができれば最高だったんですが^^;
ハッシュはできるのかどうか確認していませんが記述が長くなりそうなので今のところ考えていません

ありがとうございました

お礼日時:2008/01/09 17:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

今、見られている記事はコレ!

  • 【マステで作る!】手作りオシャレ七夕飾り

    織姫と彦星が年に一度だけ会えるとされる、ロマンチックな伝説で知られる七夕。短冊に願いごとを書いたり、飾りつけをしたりするが、そこにはどんな意味があるのだろうと「教えて!goo」で検索してみると、「七夕飾...

  • 既婚者なのに恋をしてしまった時の対処法

    最近、世間を賑わしている「不倫」。だが、パートナー以外の異性に心を奪われてしまった人たちも、最初はやり場のない恋心とどう折り合いをつけるべきか悩んでいたのかもしれない。「教えて!goo」に「既婚者だけど...

  • 孤独死を防ぐために、一人一人が今できること

    先日、「教えて!goo」で「孤独死って怖いですか?」という記事を配信した。ここではさまざまな意見が交わされたが、出来ることなら最期を迎えるまで、誰かとともに過ごしたいと願うのはごく自然な感情なのではない...

  • せきらら女子会:第83話「ご近所トラブル?」

    恋愛、結婚、お金、夜の営み...いろんなことに対して、赤裸々にトークする女の子達のお話。考え方の違う4人が、今日も居酒屋に集まります。

  • ゲーム業界ダンナ観察日記:第70話「空想企画は楽しい」

    ダンナ様のねむねむ。奥様のとぽすけ。ごく普通のふたりは、ごく普通の結婚をし、だらだらと夫婦生活を送っていました。でもただひとつ違っていたのは、ダンナ様はゲーム会社勤務だったのです。

おしトピ編集部からのゆる~い質問を出題中

お題をもっとみる


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ