配列とかいろいろ

仕事とかそれなりに忙しいので毎日はやれないけどコツコツと。
というわけで、この辺で実際になんか作っていく方向にいかないとモチベーション的にもあれなので、頻繁に使うであろう基本的なことを一通りやって次のステップにいくことにした。

とりあえず配列は使うよね

配列の基礎はもうやったので、よく使うであろう動的配列的な使い方をやってみる。

http://d.hatena.ne.jp/perlcodesample/20080127/1201418278

配列への追加と配列の要素の取得

* push関数 --- 配列の末尾へ追加
* pop関数 --- 配列の末尾の要素を取得
* unshift関数 --- 配列の先頭へ追加
* shift関数 ---配列の先頭の要素を取得
* splice関数 --- 複数要素の追加、取り出し、位置を指定しての追加、取得が可能
* これらの関数は、配列自体に変更を加える

#!/usr/bin/perl
use strict;
use warnings;


# 配列定義
my @array = ( "1", 2, 3, 4, "5", 10, "11", "A" );

# push
push @array, "Z";
my $cnt = $#array;
print "\@array[$cnt]-> $array[$cnt]\n";

# pop
my $last = pop @array;
print "$last\n";

# unshift
unshift @array, 0;
print "\@array[0]-> $array[0]\n";

# shift
my $first = shift @array;
print "$first\n";
C:\MyWorks\Perl\array>perl array1.pl
@array[8]-> Z
Z
@array[0]-> 0
0

JavaScriptからみると、なんでメソッドじゃないのかなあと思ったけど、これがPerl式なのなら仕方ない。
どうも括弧がない書き方に違和感ありまくりでどうしようかと思ったら、括弧付きでもうまくいくみたいだ。

#!/usr/bin/perl
use strict;
use warnings;


# 配列定義
my @array = ( "1", 2, 3, 4, "5", 10, "11", "A" );

# push
push(@array, "Z");
my $cnt = $#array;
print "\@array[$cnt]-> $array[$cnt]\n";

# pop
my $last = pop(@array);
print "$last\n";

# unshift
unshift(@array, 0);
print "\@array[0]-> $array[0]\n";

# shift
my $first =  shift(@array);
print "$first\n";

print "@array\n";
C:\MyWorks\Perl\array>perl array2.pl
@array[8]-> Z
Z
@array[0]-> 0
0
1 2 3 4 5 10 11 A

やっぱこっちのほうが落ちつく。

というところで今日は時間切れ。
まあコツコツとやるとしよう。