【perl】数と文字列について復習〜vol.3
=head〜=cutは、#と同じ役割を果たしています。実行される方は、実行したいところのみ=headと=cutを取って実行してください。
#! usr/bin/perl use strict; use warnings; =head #my $name = "program lesson"; #←これだと代入できて出力もできる。 #my $name = program lesson; #←これだと、エラーが出る。代入できてない。 my $name = 'program lesson'; #←これだと代入できて出力もできる。 print "$name\n"; print $name, "\n"; print '$name', "\n"; print"\$name is $name\n"; =cut =head #my $name = "\"program lesson\""; #出力結果 $name is "program lesson" #my $name = '\"program lesson\"'; #出力結果 $name is \"program lesson\"←\を文字列として認識 my $name = '\'program lesson\''; #出力結果 $name is 'program lesson' print"\$name is $name\n"; =cut =head #コンマは、両隣を連結させる役割を果たす my $name = "programming" . "Lesson"; print "\$name is $name \n"; #出力結果 $name is programmingLesson print '\$name is $name \n'; #出力結果 \$name is $name \n =cut =head my $namae = "programming" . " Lesson"; print "\$namae is $namae \n"; #出力結果 $namae is programming Lesson print '\$namae is $namae \n'; #出力結果 \$namae is $namae \n =cut =head my $namae = "programming" ." " . "Lesson"; print "\$namae is $namae \n"; #出力結果 $namae is programming Lesson print '\$namae is $namae \n'; #出力結果 \$namae is $namae \n =cut =head my $name1 = "prigramming"; my $name2 = "Lesson"; my $name = "$name1 $name2"; print "\$name is $name\n"; #出力結果 $nama is programming Lesson =cut =head print "you must write \"when you want a \" in a string.\n"; #↑出力結果 you must write "when you want a " in a string. #以下2つの出力結果 you must write \"when you want a " in a string. print "you must write \\\"when you want a \" in a string.\n"; print 'you must write \"when you want a " in a string.', "\n"; =cut =head my $x = 123; #数値として認識 my $y = "456"; #文字として認識 #perlは数値or文字列どちらで扱うかを適宜判断してくれる。 print $x+$y, "\n"; #出力結果 579 ←演算子があるため、$xと$yを数値をして扱う print "$x+$y \n"; #出力結果 123+456 ←+を文字列として扱っている print "($x+$y) \n"; #出力結果 (123+456) print '$x+$y'; #出力結果 $x+$y =cut =head #関数sprintf いろんな書式で数を文字列に変換できる my $value = 225; my $str = sprintf('%x', $value); #'%x'は16進法で表示するための指示 print $str; #出力結果 e1 =cut =head #10進法を16進法で表示してみる foreach my $value (0..255){ my $str = sprintf('%x', $value); print $value, " -> ", $str, "\n"; } =cut =head #関数hex 16進法であらわされた文字列を数に変換できる print hex('FF'), "\n"; #出力結果 255 #関数oct 8進法であらわされた文字列を数に変換できる print oct('132'), "\n"; #出力結果 90 =cut =head #関数substr 文字を切り出すことができる #substr(文字列,切り出す開始位置,切り出す長さ,切り出した部分に入れる文字列); #「切り出し開始位置」と「切り出した部分に入れる文字列」は、省略可 my $s = substr('Programming Lesson',0,9); #my $s = substr("Programming Lesson",0,9); print $s; #出力結果 Programmi ←9文字目。英語は1バイト=1文字ということがわかる。 =cut =head my $s = "programming lesson"; print "$s\n"; #出力結果 programming lesson my $t = substr("$s",0,7); print $t,"\n"; #出力結果 program print substr("$t",3,6),"\n"; #出力結果 gram #my $u = substr("$t",3,6); #print $u,"\n"; #出力結果 gram print substr("$t",6); #出力結果 m ←$t=program:最初から6バイト目まで切り出される =cut