Perlを使う2 〜 基本

◎変数

$str = 'apple';
print 'これは$strです。';

これだと、$strが文字列に置き換わらなかった。
文字列をダブルクォーテーション(")で囲って変数を展開するようにする。

$str = 'apple';
print "これは$strです。";

◎変数の後にローマ字が続く場合の書き方
連結演算子を使って、文字列を分割して書く。

$tall = '178';
print "身長は".$tall."cmです。";

文字列分割が面倒なら{}を使う。

$tall = '178';
print "身長は${tall}cmです。";

◎文字列の繰り返し
変数 x (繰り返し回数)で記述する。

#文字列繰り返し
$c = "ABC";
$d = 3;

print $c x $d, "\n";


論理積
これは想定していたのと動きが違った。

$true  = 1;
$false = 0;
print ($true && $false), "\n";

出力結果は0。
booleanなるものがあって、trueやfalseが出力されると思っていたが、booleanはないらしい。

$true  = 1;
$false = 0;
print ($false && $true), "\n";

これも出力結果は0。

◎while文を使用する際の特殊変数$_

open(IN,"input.txt");
while(<IN>){
 print($_);
}

読み込んだ値は$_という特殊な変数に格納される。

◎配列
・「@」から始めた変数は配列。
・末尾の要素の添え字は「$#変数名 」。
・配列をスカラー変数に代入すると、配列の個数が代入される

#配列
@array = ("配列要素1","配列要素2","配列要素3"); #配列の定義
print "\n";
print "末尾の要素の添え字".$#array; #末尾要素の添え字
print "\n";
$num = @array; #配列の個数の代入
print "要素の個数は".$num;

◎配列操作
・末尾への要素追加

@array = ("配列要素1","配列要素2","配列要素3");
@changed = push(@array,"追加要素");
print @changed;
print @array;

「4」、「配列要素1配列要素2配列要素3追加」と表示される。

・配列末尾からの要素削除

pop(@array);
print @array;

さきほど、pushした要素が削除されて元に戻る。

・配列の先頭要素への追加と削除
追加にはunshift、削除にはshiftメソッドを使用する。

unshift(@array,"先頭への追加要素");
print "\n";
print @array;

「先頭への追加要素配列要素1配列要素2配列要素3」と表示される。

文字列連結をすると、配列の要素数が表示される。。。

print "先頭要素への追加後=".@array;

「先頭要素への追加後=4」と表示される。これは、期待した動作ではなかった・・・。

◎クォート

@name = qw(mike fred kent peter);
print @name;

「mikefredkentpeter」と表示。

@name = qw(mike fred kent peter);
print "\n";
print $name[0];
print "\n";
print $name[1];
print "\n";
print $name[2];
print "\n";
print $name[3];

「mike fred kent peter」と表示。

print @name[0,1,2,3];

「mikefredkentpeter」と表示。