今日も林檎の木を植える
インディーゲームデベロッパー "skydol" の技術ブログ
2024.10
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2024.12
ブログ内検索
リンク
管理画面
新しい記事を書く
プロフィール
HN:
赤井林檎
性別:
非公開
カレンダー
10
2024/11
12
S
M
T
W
T
F
S
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
アーカイブ
2018 年 01 月 ( 1 )
2017 年 05 月 ( 1 )
2017 年 01 月 ( 1 )
2016 年 10 月 ( 1 )
2016 年 09 月 ( 8 )
最新記事
Unityで関数を渡す
(01/27)
他の開発者と共同で作業する
(05/23)
Photoshopのスクリプトを自分で書く
(01/26)
Ruby
(10/03)
IPv6対応
(09/27)
カテゴリー
未選択 ( 11 )
自作エンジン ( 11 )
開発日記 ( 8 )
iPhone ( 77 )
よくある罠 ( 4 )
Android ( 55 )
C/C++ ( 5 )
UNITY ( 15 )
考察 ( 2 )
Java ( 12 )
PC一般 ( 3 )
Web系 ( 12 )
サーバ ( 28 )
perl ( 5 )
ゲーム ( 1 )
書評 ( 18 )
マネー ( 1 )
UDK ( 0 )
Mac ( 0 )
git ( 1 )
cocos2d-x ( 50 )
swift ( 1 )
ゲーム開発一般 ( 1 )
開発一般 ( 6 )
広告 ( 1 )
Xcode ( 1 )
グラフィック ( 1 )
フリーエリア
最新コメント
http://2017.njpex.net
[08/31 http://2017.njpex.net]
無題
[02/02 masa]
最新トラックバック
RSS
RSS 0.91
RSS 1.0
RSS 2.0
バーコード
アクセス解析
[PR]
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
【2024/11/22 19:34 】
|
Perlの配列
「リスト」とは、スカラーの集合のこと。データ。
「配列(array)」とは、リストを格納する変数のこと。
$fred
$fred[0]
$fred[1]
はすべて別物。紛らわしいけど。
インデックスが末尾より大きいときは、undefを返す。(未初期化スカラー変数にアクセスしたのと同じと考えればよい)
末尾のインデックス値は、$#fred で取得できる。(サイズ100の配列なら、$#fredは99)
インデックスは負値も指定できる。-1 は$#fredと同じ位置を指す。インデックスが負の方向にはみ出すとundefを返す。値を格納しようとすると致命的エラーになる。
リストリテラルの書き方は
(0, 1, 2)
("a", "b", "c")
qw (a b c) #上と同じ意味。シングルクォート文字列扱いであることに注意。
qw
#これも同じ。デリミタは何の記号文字でもいい
qw !a b c! #これも同じ。
代入には
($a, $b, $c) = qw(a b c);
とする。
($lhs, $rhs) = ($rhs, $lhs);
とすればswapできる。
左右の要素数が合わないときは、黙って捨てられるか、undefが代入される。(元々値が入っていても、undefで上書きされる)
@記号を使うと、配列全体を表す。
($ary[0], $ary[1], $ary[2]) = qw(x y z);
@ary = qw(x y z); #上と同じ
@ary2 = (@ary, 3, @ary); #こんな書き方も
ただし、スカラーコンテキストでは、@ary は配列の要素数を返す。
インデックスを使わない書き方。
末尾に追加、削除する
@ary = (1, 2, 3);
push @ary, 0 # @ary == (1,2,3,0)
push @ary, @ary #@ary==(1,2,3,0,1,2,3,0)
push @ary, 5..7 #@ary == (1,2,3,0,1,2,3,0,5,6,7)
pop @ary #@ary == (1,2,3,0,1,2,3,0,5,6)
先頭に追加、削除する。shift(=pop),unshift(=push)
ソートする
@ary = sort @ary;
これはスカラーコンテキストはない(常にundefを返す)
要素を逆順にする
@ary = reverse @ary;
スカラーコンテキストでは、文字列の全文字を逆に並べる
$rev = reverse @ary; #@ary == (10,20,30) なら $rev = "030201"
どっちとも取れるコンテキストだと、リストコンテキストと見なすようだ
print reverse @ary; # 302010 と表示される
print scalar reverse @ary; # 030201 になる。スカラーコンテキストを強制
$rev = reverse @ary; #030201
@rev = reverse @ary; #30 20 10
リストコンテキストを強制するには、カッコをつける。
($a) = reverse @ary; # 実際reverseはリストコンテキストなので不要だが
その他の例
スカラーコンテキストでは、次の1行を返す
while (
) {...}
リストコンテキストでは、残りの行を配列にして返す
@lines =
;
PR
【2012/03/10 23:28 】
|
perl
|
有り難いご意見(0)
<<
動画
|
ホーム
|
Perlの実行
>>
有り難いご意見
貴重なご意見の投稿
NAME:
MAIL:
URL:
COLOR:
Black
LimeGreen
SeaGreen
Teal
FireBrick
Tomato
IndianRed
BurlyWood
SlateGray
DarkSlateBlue
LightPink
DeepPink
DarkOrange
Gold
DimGray
Silver
SUBJECT:
COMMENT:
PASS:
<<
前ページ
|
ホーム
|
次ページ
>>
忍者ブログ
[PR]
Powered by
NINJA TOOLS