2010年 1月 8

たまに使う配列のシャッフル。
コピペで使えると便利なので。

sub shuffle {
  my @list;
  push( @list, splice(@_, int(rand(@_))) ) while(@_);
  return @list;
}

使い方

my @data = (1,2,3,4,5);
@data = shuffle(@data);

参考:http://sonic64.com/2004-11-13.html

こちらもどうぞ:perl の配列処理で 標準モジュール List::Util を使う理由

More from my site

  • perlでirbしたいと思ったら出来るみたいperlでirbしたいと思ったら出来るみたい 前にRubyの勉強会に参加した時に irb を教えてもらって、便利だったのでPerlでも同じようなことが出来ないかググったら出来るみたい。 Perl5 で irb 相当のことをする方法、すなわち REPL をする方法 - blog.64p.org Perl5 で REPL(Read-Eval-Print-Loop)をつかいたければ、perl -de 1 […]
  • [Perl] DBIx::Class(DBIC)でtimestamp的なカラムの自動更新[Perl] DBIx::Class(DBIC)でtimestamp的なカラムの自動更新 今更ながらDBIx::Class(DBIC)に入門。使い始めてDBICの作法に翻弄されてる。 timestamp的なカラム、例えばupdated_atカラムを自動更新させるのにハマったのでメモ。 03日目: データモデル から抜粋 package Jobeet::Schema::ResultBase; use strict; use warnings; use […]
  • perlでメール送信時の いわゆる波ダッシュ「〜」問題 perlでメール送信時の いわゆる波ダッシュ「〜」問題 今更ながらまた波ダッシュ問題で悩まされた。 波ダッシュ「〜」と全角マイナス「−」で文字化けが発生する。 これまた、Windowsの問題なわけで、マカーである自分にはなかなか気が付かない罠。 で、 perlの波ダッシュの文字コード変換のまとめ - (゚∀゚)o彡 sasata299's blog […]
  • Minillaを使ってMojoliciousプラグインを開発するMinillaを使ってMojoliciousプラグインを開発する 1. Mojoliciousプラグインの雛形作成 $ mojo generate plugin MyPlugin カレントディレクトリに Mojolicious-Plugin-MyPlugin というディレクトリ名で雛形作成される。 2. ドキュメントにAuthor情報を追記する。 $ cd ./Mojolicious-Plugin-MyPlugin $ vi […]
  • print <<EOM;〜EOMの中にperlの式を書くprint <<EOM;〜EOMの中にperlの式を書く ヒアドキュメントの中でPerlの式を書く print <<EOM; あいうえお かきくけこ EOM こんなのをヒアドキュメントという(らしい) この中にperlの式を埋め込むテクニック。 リンク先より引用 print <<EOM; TIME: @{[ time() ]} EOM 実行結果 TIME: […]
  • perl の配列処理で 標準モジュール List::Util を使う理由perl の配列処理で 標準モジュール List::Util を使う理由 以前に配列をシャッフルの記事( http://perl.no-tubo.net/2010/01/08/pelrで配列をシャッフル/ )を書いたのだけれど、その時にコメントで List::Util を使いましょうよ、と頂いた。 そういうものもあるのか、と思っていたのだけれど理由があったので軽く調べてみた。 perl […]

Filed under: perl

Trackback Uri


2 Comments.

  • xaicron says:

    参考先にも書いてありますが、List::Util::shuffleを使った方がいいと思います

  • admin says:

    ありゃ、そうなんですか?
    テスト的なスクリプトの時にコピペで使った程度なんですけど、
    ガシガシ使うにはモジュール使った方が効率がいいのかなぁ。
    標準モジュールですしね。



コメントする