初めてのPerl 第3章 ver2
本日の作業内容
- 初めてのperl(配列、サブルーチン)
以下本日行ったテストコードと、その出力結果です。
配列
use strict; use warnings; use data::dumper; my @fred; $fred[99] = "blue"; $fred[0] = "takeshi"; $fred[1] = "takurou"; $fred[2] = "mika"; foreach my $test(@fred){ print $test . "\n"; } my $number = 2.71828; print $fred[$number]; # index2が表示される小数点は切り離される。 my $end = $#fred; print $end; # 値が格納されている最大のindexを格納する。 my @list = ("fred","george","tom"); my @test = qw/fred george tom mike/; my @tests; my @lists; # 下記の代入している値は全て第一引数(@fred)に格納される。 (@freds,@lists,@tests) = ("red","momo","ayataka"); my @rocks = qw/ mike mike mike/; my @tuny = (); my @giant = 1..1e5; my @max = (@giant , unfer , @giant); my $giant = "hello"; print dumper $giant;
要素がない(unfar)であるため、以下の「use of~」が96行表示されるが、省略しています。
use of uninitialized value $test in concatenation (.) or string at /usr/home/vagrant/perltest/a.pl line 15.
takeshi
takurou
mika
配列の中に要素が何もないときはundef値となり、出力時には以下のようなエラーを発生させる。
use of uninitialized value $test in concatenation (.) or string at /usr/home/vagrant/perltest/perl3-2.pl line 44.
use strict; use warnings; my @numbers = <stdin>; my @name = qw(test taro jiro saburo shirou); foreach my $number (@numbers){ if($number =~ /^\d+$/){ print $name[$number] . "\n"; }else{ print "入力し直してください:$number"; } }
以下のような表示になります。
1
2
3
q
taro
jiro
saburo
入力し直してください:q