#!/usr/bin/perl
use strict;
use warnings;
=pod
=cut
print "Hello World!!\n";
my $num=1;
print "${num}\n";
my $fudou_num = 123.45;
print "${fudou_num}\n";
my $alp1 = 'abc';
print $alp1."\n";
my $alp2 = "${alp1}def";
print $alp2."\n";
print 'cat\'s'."\n";
print '\\100'."\n";
print "台詞 \"ああ\"\n";
print "aaa\\bbb\n";
print "aaa\$bbb\n";
print "aaa\@bbb\n";
my @nums=(1,2,3);
print "$nums[0]\n";
print "$nums[1]\n";
print "$nums[2]\n";
my $count = @nums;
print "$count\n";
print "\n";
print "---------------- array\n";
my @animals = ("dog", "cat", "bird");
print "-- array shift\n";
print "@animals\n";
my $first = shift(@animals);
print "$first\n";
print "@animals\n";
print "-- array unshift\n";
print "@animals\n";
unshift(@animals, "mouse");
print "@animals\n";
print "-- array pop\n";
print "@animals\n";
my $pop_animal = pop(@animals);
print "$pop_animal\n";
print "@animals\n";
print "-- array push\n";
print "@animals\n";
push(@animals,"horse");
print "@animals\n";
print "-- array push array\n";
my @nums1 = (1,2,3);
my @nums2 = (4,5,6);
push (@nums1,@nums2);
print "@nums1\n";
print "-- array splice\n";
my @nums3 = (1,2,3,4,5);
my @nums3_splice = splice(@nums3,1,3);
print "@nums3_splice\n";
print "-- array soft\n";
my @nums4 = (2,1,5,4,9,6,10,20);
print "@nums4\n";
my @num4_sort = sort{$a <=> $b} @nums4;
print "@num4_sort\n";
my @num4_reverse_sort = sort{$b <=> $a} @nums4;
print "@num4_reverse_sort\n";
my @nums4_string_sort = sort {$a cmp $b} @nums4;
print "@nums4_string_sort\n";
my @nums4_string_reverse_sort = sort {$b cmp $a} @nums4;
print "@nums4_string_reverse_sort\n";
print "\n";
print "---------------- hash\n";
my %score = ("a" => 100,"b" => 200,"c" => 300 );
print $score{"a"}."\n";
print $score{"c"}."\n";
if(exists($score{"a"})){
print "key-aは存在します\n";
}
delete ($score{"a"});
if(!exists($score{"a"})){
print "key-aは存在しません\n";
}
print "\n";
print "---------------- calc,string\n";
my $add = 1 + 1;
print "$add\n";
my $sub = 2 - 1;
print "$sub\n";
my $multi = 3 * 2;
print "$multi\n";
my $div = 10 / 4;
print "$div\n";
print int($div)."\n";
my $mod = 10 % 4;
print $mod."\n";
my $i=1;
$i++;
print "$i\n";
$i--;
print "$i\n";
my $str = "a"."b"."\n";
print $str;
my $str_join = join("-","a","b","c");
print $str_join."\n";
my @str_array = ("a","b","c");
my $str_join2 = join("-",@str_array);
print $str_join2."\n";
my @array_split = split(/\./,"aa.bb.cc.dd");
print "@{array_split}\n";
print length("ABCDEFG")."\n";
print index("ABCDEFG","DEF")."\n";
print substr("abcdefg",1,2)."\n";
print substr("abcdefg",2)."\n";
print "\n";
print "---------------- 条件分岐\n";
my $check = 2;
if($check == 0){
print "check=0\n";
}elsif ($check == 1){
print "check=1\n";
}else{
print "check=(0 or 1) other\n";
}
=pod
=cut
=pod
=cut
=pod
=cut
my $unless_value = 1;
unless($unless_value != 1){
print "unless_value != 1 \n";
}
print "\n";
print "---------------- 繰り返し\n";
print "-- while\n";
my $i_while = 0;
while($i_while <= 3){
print "$i_while\n";
$i_while++;
}
print "-- for\n";
for(my $i=0;$i<3;$i++){
print "$i\n";
}
print "-- foreach\n";
my @foreach_array = ("a","b","c");
foreach my $i(@foreach_array){
print "$i\n";
}
=pod
=cut
my %ids = ("Ken" => 1, "Taro" => 2, "Miki" => 3);
while(my($key,$val) = each(%ids)){
print "key=$key,val=$val\n";
}
foreach my $key (sort keys(%ids)){
print "$key - $ids{$key}.\n";
}
print "\n";
print "---------------- サブルーチン\n";
sub _add{
my ($num1,$num2) = @_;
return $num1 + $num2;
}
print _add(1,3)."\n";
print "\n";
print "---------------- 正規表現\n";
print "-- パターンマッチ\n";
my $str_seiki = "abcdefgabcdefg";
if($str_seiki =~ m/^ab/){
print "先頭にabがあります\n";
}
my $str_matchstr = "ID-10-1001";
if($str_matchstr =~ m/ID-(\d{2})-(\d{4})/){
print $1."-".$2."\n";
}
print "-- 文字列の置換\n";
my $str_replace = "abcabc";
$str_replace =~ s/a/z/;
print "$str_replace\n";
my $str_replace2 = "abcabc";
$str_replace2 =~ s/a/z/g;
print "$str_replace2\n";
=pod
=cut
=pod
=cut
my $str_strclass = "akb";
if($str_strclass =~ m/^[abc].*/){
print "match:先頭が[a],[b],[c]のどれかで始まる文字列\n";
}
my $str_hanni = "AKB";
if($str_hanni =~ m/^[a-zA-Z].*/){
print "match:先頭が[a-zA-Z]で始まる文字列\n";
}
my $str_igai = "123abc";
if($str_igai =~ m/^[^a-zA-Z]/){
print "match:先頭が[^a-zA-Z]以外の文字列\n";
}else{
print "no match:先頭が[^a-zA-Z]以外の文字列\n";
}
my $str_fukusu = "abc123def456";
if($str_fukusu =~ m/(abc|def)/){
print "match:(abc|def)文字列\n";
}else{
print "no match:(abc|def)文字列\n";
}
=pod
=cut
=pod
=cut
print "\n";
print "---------------- ファイルの入出力\n";
my $rfh;
my $file="input.txt";
open($rfh, "<", $file) or die "can not open $file; $!\n";
while(my $line = <$rfh>){
print "$line";
}
close($rfh);
=pod
open(ファイルハンドル, オープンモード, ファイル名)
=cut
my $wfh;
my $outputfile="output.txt";
open($wfh, ">", $outputfile) or die "can not open $outputfile; $!\n";
print ($wfh "test1\n");
print ($wfh "test2\n");
close($wfh);