「Perl2次元配列」の版間の差分

提供: dococo wiki
ナビゲーションに移動 検索に移動
imported>Webmaster
imported>Webmaster
16行目: 16行目:
 
== 配列への代入方法 ==
 
== 配列への代入方法 ==
 
ひとつ、ひとつブラケット <code>[</code>で括ってやって指定する方法<br />
 
ひとつ、ひとつブラケット <code>[</code>で括ってやって指定する方法<br />
 
 
<syntaxhighlight lang="perl">
 
<syntaxhighlight lang="perl">
 
my @jdata;
 
my @jdata;
32行目: 31行目:
  
 
foreach my $var1 (@jdata) {
 
foreach my $var1 (@jdata) {
 +
foreach my $var2 (@{$var1}) {
 +
print "$var2 ";
 +
}
 +
print "\n";
 +
}
 +
</syntaxhighlight><br />
 +
<br />
 +
<code>Push</code>を使ってまとめて指定する方法もあります<br />
 +
ここで注意しないといけないのは配列をリファレンスにしないといけないことです<br />
 +
<code>push(@spec, \@chars);</code>の<code>\@chars</code>で\がついているところが重要です<br />
 +
<syntaxhighlight lang="perl">
 +
my @spec = ();
 +
my @chars = qw/あ い う え お/;
 +
push(@spec, \@chars);
 +
 +
my @chars = qw/か き こ け こ/;
 +
push(@spec, \@chars);
 +
foreach my $var1 (@jdata) {
 +
foreach my $var2 (@{$var1}) {
 +
print "$var2 ";
 +
}
 +
print "\n";
 +
}
 +
</syntaxhighlight>
 +
== 2次元配列の表示 ==
 +
配列の表示方法も2種類あるので意味を理解して使いましょう
 +
<syntaxhighlight lang="perl">
 +
foreach my $var1 (@spec){
 +
foreach my $var2 (@$var1){
 +
print "$var2 ";
 +
}
 +
print "\n";
 +
}
 +
 +
foreach my $var1 (@spec) {
 
foreach my $var2 (@{$var1}) {
 
foreach my $var2 (@{$var1}) {
 
print "$var2 ";
 
print "$var2 ";

2017年10月15日 (日) 08:48時点における版

もう少し2次元配列について詳しく記録しておく
2次元配列のイメージはこんな感じだとおもう

2次元配列
0 1 2 3 4
0
1
2
3

単純な50音表、こんな形が2次元配列というイメージがあると思う

配列への代入方法

ひとつ、ひとつブラケット [で括ってやって指定する方法

	my @jdata;
	$jdata[0][0] = "あ";
	$jdata[0][1] = "い";
	$jdata[0][2] = "う";
	$jdata[0][3] = "え";
	$jdata[0][4] = "お";

	$jdata[1][0] = "か";
	$jdata[1][1] = "き";
	$jdata[1][2] = "く";
	$jdata[1][3] = "け";
	$jdata[1][4] = "こ";

	foreach my $var1 (@jdata) {
		foreach my $var2 (@{$var1}) {
			print "$var2 ";
		}
		print "\n";
	}



Pushを使ってまとめて指定する方法もあります
ここで注意しないといけないのは配列をリファレンスにしないといけないことです
push(@spec, \@chars);\@charsで\がついているところが重要です

my @spec = ();
my @chars = qw/あ い う え お/;
push(@spec, \@chars);

my @chars = qw/か き こ け こ/;
push(@spec, \@chars);
	foreach my $var1 (@jdata) {
		foreach my $var2 (@{$var1}) {
			print "$var2 ";
		}
		print "\n";
	}

2次元配列の表示

配列の表示方法も2種類あるので意味を理解して使いましょう

	foreach my $var1 (@spec){
		foreach my $var2 (@$var1){
			print "$var2 ";
		}
		print "\n";
	}

	foreach my $var1 (@spec) {
		foreach my $var2 (@{$var1}) {
			print "$var2 ";
		}
		print "\n";
	}