Perlで配列から値を削除する方法は?
2022-01-03 21:43:25
もしundefを"empty"として考えるなら、何らかの関係があるのでしょう。しかし、一般的に言えば、undefに何かを代入することは、何かを削除することとは異なります。
まず、配列の要素をundefに代入する方法を見て、その後、配列から要素を削除する方法を学びます。
まず、次のコードから始めてください。
コピーコード
コードは以下の通りです。
use Data::Dumper qw(Dumper);
my @dwarfs = qw(Doc Grumpy Happy Sleepy Sneezy Dopey Bashful);
print Dumper \@dwarfs;
Data::Dumperを使って印刷すると、以下のような出力が得られます。
コピーコード
コードは以下の通りです。
$VAR1 = [
'Doc',
'Grumpy',
'Happy',
'Sleepy',
'Sneezy',
'Dopey',
'Bashful'
];
要素をundefに代入する
undef()関数の戻り値を使って。
コピーコード
コードは以下の通りです。
use Data::Dumper qw(Dumper);
my @dwarfs = qw(Doc Grumpy Happy Sleepy Sneezy Dopey Bashful);
$dwarfs[3] = undef;
print Dumper \@dwarfs;
これらのコードは、要素番号3(配列の4番目の要素)をundefに割り当てますが、配列のサイズは変更しません:。
コピーコード
コードは以下の通りです。
$VAR1 = [
'Doc',
'Grumpy',
'Happy',
undef,
'Sneezy',
'Dopey',
'Bashful'
];
配列の要素に直接undef()関数を使っても、同じ結果になります。
コピーコード
コードは以下の通りです。
use Data::Dumper qw(Dumper);
my @dwarfs = qw(Doc Grumpy Happy Sleepy Sneezy Dopey Bashful);
undef $dwarfs[3];
print Dumper \@dwarfs;
つまり、$dwarfs[3] = undef; と undef $dwarfs[3]; は同じことをする、どちらもundefに値を代入するのだ。
splice を使って配列から要素を削除する
splice 関数は、配列から要素を完全に削除する関数です。
コピーコード
コードは以下の通りです。
use Data::Dumper qw(Dumper);
my @dwarfs = qw(Doc Grumpy Happy Sleepy Sneezy Dopey Bashful);
splice @dwarfs, 3, 1;
print Dumper \@dwarfs;
$VAR1 = [
'Doc',
'Grumpy',
'Happy',
'Sneezy',
'Dopey',
'Bashful'
];
この例では、配列の途中の要素を削除したため、配列が1単位分短くなっていることがおわかりいただけると思います。
これは、配列から要素を削除する方法でもあります。
関連
-
Perlの特殊記号の紹介
-
ディレクトリ内のファイルを再帰的に走査するためのPerlスクリプト
-
Windows 10でのPerl環境のインストールと設定のための詳細チュートリアル
-
perlを使ってデータテーブル(mysql)を分割し、データインスタンスを移行する。
-
perl による生物学的突然変異のランダムシミュレーションコード
-
長さを指定し、ランダムなDNA配列を生成するperlスクリプトコード
-
Linux/Unix で Perl モジュールをインストールする 2 つの方法
-
Perlのハッシュの作成と参照入門
-
[解決済み] Perlで強制的にフラッシュ出力することはできますか?
-
[解決済み] Perlで環境変数を設定するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Perlについて(Perl公式サイトの翻訳です。)
-
PerlのMail::POP3ClientモジュールとGmailの通信例
-
Perlの制御構造に関する学習ノート
-
perlの文字列操作関数chompとchopの紹介
-
スペースがセパレータである場合の perl qw 問題の解決法
-
PODのPerlのパーミッションの問題
-
perlで2つのファイル文字列を比較するサンプルコード
-
Perl 構文による Perl 演算子の使用法ガイド
-
[解決済み] Perlで「ハッシュの代入の要素数が奇数である」という警告が出る
-
[解決済み] Perlで何か悪いことが起こったとき、croak()とdie()のどちらが良いのでしょうか?