はじめに
プログラミング初学者がPerlを学習する上でメモ書きとして投稿している記事になります。
間違った箇所などがあればご指摘よろしくお願いいたします。
背景
独学で勉強したshift関数と職場で使用したshift関数の使い方がちょっと違っていた?から
目的
Perlを学びたての人にshift関数の使い方について共有できればと思います。
Shift関数とは
配列の先頭の要素を取得する関数。先頭の要素は切り出され、元の配列からはなくなることに注意してください。
例
hello.pl
#処理内容
#hello.plファイルをあらかじめ作成しておきましょう
my @nums = (1, 2, 3);
my $first = shift @nums;
print "$first\n";
#コマンドラインでhello.plまで進みpl hello.plを実行
1
違う使い方
今度は、自分がこうゆう使い方もあるんだってなった書き方(俺の調査不足で普通に使われてる説あるけど。。)
hello.pl
my @name = ('ItoMakoto', 'SaionjiSekai');
my $ref = sub {
my $hello_name = shift;#2つある配列の先頭を持ってきている
print "Hello,$hello_name.\n";
};
$ref->($name[0]);
#結果
Hello,ItoMakoto
うーむ。読者を置き去りにしていないだろうか。。
変数refの中身に渡された配列($name[0])の1番目の値('ItoMakoto')がshift関数によって渡されてきた感じです!
2番目で出てきている例は、無記名サブルーチンというものを使用しているので詳しく知りたい方は
無名サブルーチンを参照してもらえれば助かります( ; ; )