配列Aに入っている全ての値を、ハッシュHのキーにしたい。これは一行で解決する。
続きを読む
リスト
配列の要素数を調べる – Perl
配列に今どれだけの要素が詰まっているかカウントしたい。これには大きく二つの方法が用意されている。
「$#配列名
」とする方法と、スカラー値として値を得る方法の二つがある。前者と後者で得られる値が違う点に注意すること。「$#配列名
」は配列のインデックス(添え字)に忠実で、「最大数 – 1」の結果が返ってくるのに対し、後者は最大数がそのまま返ってくる。
続きを読む
配列をコピーする – Perl
配列Aの内容を配列Bにそのままコピーしたいが、どうすれば良いだろうか?
単純に代入をしてやれば良い。 コピー先の配列に値が入っていた場合でもすべて上書きされてしまうので注意すること。もし配列の前か後ろに挿入したいのならpush,unshiftを用いる。
続きを読む
配列を結合(連結)する – Perl
二つの配列を結合(連結)し、合体させたい。 pushとunshiftはリスト(配列)を渡せるのでそれを利用するのが良い。
続きを読む
配列内の数値を合計する – Perl
リスト(配列)内の数値をすべて合算した値を取得したい。 素直に計算する方法と、モジュールを利用する方法がある。List::Utilは5.8以上から標準モジュールとして用意されている(インストールする必要がない)。最近のPerlを使っているならモジュールを利用すれば良いだろう。
続きを読む
配列内の最小値を取得する – Perl
とあるリスト(配列)から最小値を取得するにはどうすれば良いだろうか? いろいろな方法が考えられるが、ここでは三種類ほどサンプルをしめす。各関数の処理をそれぞれ見ていただきたい。
続きを読む
配列内の最大値を取得する – Perl
とあるリスト(配列)から最大値を取得するにはどうすれば良いだろうか? いろいろな方法が考えられるが、ここでは三種類ほどサンプルをしめす。各関数の処理をそれぞれ見ていただきたい。
続きを読む
配列の一部を置換する(splice) – Perl
配列の一部だけを簡単に置換してくれる関数がspliceである。 spliceは非常に柔軟であるがために最初はかなりとっつきにくい。その反面、まとめて配列の操作をしたくなった際には心強い味方になってくれる。引数の数によって動作がかなり変わるのでその点をしっかりと押さえておきたい。
続きを読む
配列に値を追加する(push,unshift) – Perl
配列の先頭、または末尾から値を追加するにはpush、unshiftを用いれば良い。 先頭への追加はunshift、最後に追加するのはpushを用いる。
続きを読む
配列を逆順に並べ替える(reverse) – Perl
リスト(配列)を逆に並べ替えるお手軽な方法はreverseを用いることだ。
続きを読む
配列内の重複を取り除く – Perl
配列内の同じ値を取り除きたい。ハッシュを利用すればかんたんに実現できる。
続きを読む
配列をシャッフルしたい(ランダムな順列) – Perl
配列(リスト)を順不同に並べ替えたい。 トランプで言う「シャッフル」、アルゴリズム的な用語を使うと「ランダムな順列」に該当する。
次のようなプログラムを記述すれば良い。
続きを読む
特定の項目でソートする – Perl
以下のような配列がある時、2番目の項目で並べ替えがしたい。 単純に sort @array
しただけではできない。
@array = ( '1,b,c'
, '3,c,b'
, '2,a,a'
);
ソート項目が数値の時にはorderByArrayNum、文字列の時にはorderByArrayStrをそれぞれ呼び出せば良い。配列そのものの値が変わるので、オリジナルを保存しておきたい場合には、必ずコピーを渡すこと。
続きを読む
数値の値でソートする – Perl
以下のようなコードを書くと、文字列として扱われてしまい、意図した結果にならない場合がある。
@array = ( 1, 2, 3, 4, 5, 10, 11, 12 );
foreach(sort @array){
print ;
print "\n"
}
リストからある条件と一致した値を取出す – Perl
あるリストから、希望する条件に一致した値だけを取り出したい場合がある。for,while,foreachなどのループを使う方法以外に、効率の良いやり方が知りたい。
続きを読む