【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