delete関数

広告

「delete」関数は指定された配列要素を削除します。

引数に指定された配列要素を削除します。

パラメータ:
  EXPR  配列の要素
戻り値:
  削除された値

1番目の引数には対象となる配列の要素を指定します。配列の要素は「$ハッシュ名[インデックス]」で表されます。指定したインデックスが存在した場合、要素は削除されます。

配列の場合には最後の要素が削除された場合には要素が1つ減りますが、最後で無い要素が削除された場合には該当のインデックスの値が未定義値(undef)に設定されます(要素が一つずつずれるわけではない)。

具体的には次のように記述します。

my @city = ("東京", "大阪", "名古屋");
delete($city[1]);

※delete関数はハッシュ要素に対して使用できます。詳しくは「delete関数」を参照して下さい。

サンプルプログラム

では簡単なプログラムで確認して見ます。

test5-1.pl

use strict;
use warnings;
use utf8;
binmode STDIN, ':encoding(cp932)';
binmode STDOUT, ':encoding(cp932)';
binmode STDERR, ':encoding(cp932)';

my @city = ("東京", "大阪", "名古屋");

my $val = delete($city[2]);
print "削除された値:$val¥n¥n";

print "残っている要素¥n";
foreach my $i(0 .. $#city){
  print "$city[$i]¥n";
}

上記を「test5-1.pl」の名前で保存します(文字コードはUTF-8です)。そしてコマンドプロンプトを起動し、プログラムを保存したディレクトリに移動してから次のように実行して下さい。

delete関数

( Written by Tatsuo Ikura )