【perl】push関数〜配列の一番最後に要素を追加する〜

最近、疲れてきたのか、いつの間にか変なことをしています。今日なんか、自動販売機でお水を買おうと思ったのに、なぜか隣のボタンを押してしまっていて炭酸ジュースが出てくるなんてことが。一瞬びっくりした。お水のボタンを押したはずなのに、なぜ炭酸ジュースが出てくるの?、と頭がしばし混乱。おかげで、電車を一本乗りそびれてしまい、6時出社の予定が6時半出社になってしまいましたよ。


ま、そんなことはどーでもよくて、今日も元気にミーティングをこなしつつperlの基礎勉強を行いました。まずは、pop関数のお勉強成果から。

#! /usr/bin/perl

use strict;
use warnings;

my @array = (54,456,7,27,4222);
my $array_nunber = @array;

print "\@arrayの一番最後の添え字と要素数を把握しましょう。\n";
print "$#array\n";         #出力結果 => 4 =>一番最後の添え字は4
print "$array_nunber\n\n"; #出力結果 => 5 =>要素数は5個


#push関数で配列の最後に要素を付け加えてみる。
print "push関数で\@arrayの最後に要素を追加しましょう。\n";
print push(@array,'LAST')."\n";
#出力結果 => 6 =>「.」(文字列連結演算子)を使うと、@arrayが配列ではなくスカラーと評価されて要素の数が帰ってくる。

push(@array,'first');
print "@array\n";
#出力結果 => 54 456 7 27 4222 LAST first

print $array[$#array]."\n"; #出力結果 => first =>確かに一番最後に入ってる
print "$#array\n";          #出力結果 => 6 =>一番最後の要素の添え字もちゃんと増えてる

print "\n";

#下記のように一番最後の添え字を調べてから追加するのもあり。→push関数だと、一番最後の添え字や要素の数を知らなくても追加できる。
$array[7] = 'Rain';
print "@array\n";



#◎空の配列に要素をpush関数で追加
print "\n◎空の配列に要素をpush関数で追加\n";
my @array1 = (); #空の配列を作成

push (@array1, 'happy');
print "@array1\n"; #@array1の要素を返す => 出力結果 => happy



#◎push関数で複数の要素を同時に追加する
=head
push (@array1,'34','7568','1453','hello'); 
push (@array1,'34,7568,1453,hello');
=cut
push (@array1,qw(34 7568 1453 hello));
#上記のheadとcutで囲まれているpushの書き方でも要素を追加できました。
#しかし、push (@array1,34,7568,1453,hello);だと、(「''」がないと)エラーになるよ

print "@array1\n"; #出力結果 => happy 34 7568 1453 hello



#◎push関数で配列を追加する
my @array2 = qw(NEXT pink bule);

push (@array1,@array2);
print "@array1\n"; #出力結果 => happy 34 7568 1453 hello NEXT pink bule

まとめは以下。

(1)公式→push (@配列名,'追加したい要素');
'追加したい要素'には、以下の場合も可能
・複数の要素を同時に追加する(書き方は以下のような方法がある。)
例1)push (@array,qw(a b c ));
例2)push (@array,'a','b','c');
例3)push (@array,'a b c');
・配列を追加する
例)push (@array,@array1);
→配列arrayに配列array1の要素を追加する