この章では配列の関数について説明します。
関数は入力したデータに基づいて決められた処理を行い、戻り値という結果を返す機能を持っています。
このデータは引数と呼ばれています。
ここでは第2引数までしか書いていませんが引数3、引数4と続きます。
引数の数は関数によって違います。
では関数についてさらに詳しく説明します。
「Perlの基礎を知ろう」の章では関数については以下の通り説明しました。
Perlの関数の仕組みはエクセルの関数の仕組みと意味は同じです。エクセルをご存知の方はわかると思いますが、例えばエクセル関数にSUMと言う関数が有りますが、この関数は指定した範囲のデータに基づいて足し算を行う関数です。
例えば指定した範囲のデータが3,5,7であるならば結果は15です。SUMには初めから指定した範囲の足し算を行うと言う仕組みが備わっています。
つまり、エクセルの内部機構でSUMの機能は指定した範囲の足し算を行うと言うプログラムがされていると言うことです。
これが関数の意味です。
Perlには初めからこのように機能が定義されている関数が多数ありますので、配列に関係する関数を取り上げたいと思います。
printは出力する関数でしたが、配列の関数は配列のデータの順番を変えたりする便利な関数が多数ありますので、次で紹介します。
「猫と犬とライオンと象とネズミ」
色々区切り文字を入れて試してみてください。
次の通り、sortの基本構文は複数ありますが、順番に説明していきます。
「E a b c d f」
標準の文字列比較の順番で文字が昇順に並び替えられます。
順序は
〇abc順
〇大文字は小文字より前
〇数値はアルファベットより前という法則で決まります。
cmpは文字コードで比較するときに使う演算子です。
「a b c d e f」
「sort { $a cmp $b } 配列;」との違いは$aと$bの位置です。
「f e d c b a」
cmpは文字コードで比較するときに使う演算子でしたが、
sort { $a <=> $b } 配列;との違いは$aと$bの位置です。
2 0 7 3 4
f d E a c b
splice関数には幾つかの構文があります。
@seには配列の中の削除した要素が代入されていますので、
結果は
@animalには削除後の要素である猫が入っています。
@seには配列の中の削除した要素が代入されていますので、
結果は
@animalにはすべてを削除したので何も残っていません。
@seには配列の中の削除した要素が代入されていますので、結果は
@animalには削除後の要素である
そしてその削除した要素を返します。
@seには配列の中の削除した要素が代入されていますので、結果は「犬 ライオン」です。
@animalには削除した箇所に龍、ネッシーを加えているので、