Perl¡¡¤È¤«¤¤¤Æ¡¡¥Ú¡¼¥ë¤¸¤ã¤Ê¤¤¤ç¡¡¥Ñ¡¼¥ë¤À¤ç
È÷˺Ͽ
¢£system¥³¥Þ¥ó¥É
# system¥³¥Þ¥ó¥É
system("date");
print `date`;
$dt = `date`;
print $dt;
# system¥³¥Þ¥ó¥É¥ê¥¿¡¼¥ó¥³¡¼¥É
system("sort -t, -k1,1 data.csv");
$ret = `echo $?`;
¢£Àµµ¬É½¸½È½Äê¤ÎÍî¤È¤··ê
$a = "¤¢¤¤¤¦";
if ($a =~ /^¤¢¤¤¤¦$/) ¢ª true #Á°¸åÊý´°Á´°ìÃ×
if ($a =~ /^¤¢¤¤/) ¢ª¡¡true¡¡#Á°Êý°ìÃ×
if ($a =~ /¤¤¤¦$/) ¢ª true¡¡#¸åÊý°ìÃ×
if ($a =~ /¤¤/) ¢ª true #Éôʬ°ìÃ×
ñ¤Ëʸ»úÎó¥Þ¥Ã¥Á¥ó¥°¤Ê¤é
if ($a eq "¤¢¤¤¤¦") ¢ª true #¥á¥¿Ê¸»ú¤âOK
¤È¤«
if (($a cmp "¤¢¤¤¤¦") == 0) ¢ª true #C¤Ç¤¤¤¦¤È¤³¤í¤Îstrcmp
¢£GREP¤Æ¤«Àµµ¬É½¸½
@PrintData = grep(/^(¤¢)?(¤¤)?(¤¦)?(¤¨)?(¤ª)?(\,){1}\Q$GrepStr\E/, @Hairetu);
ÀèÆ¬Ê¸»ú¤¬
¤¢¡Á¤ª¤Î¤¤¤º¤ì¤«¤Ç£±²ó¤Þ¤¿¤Ï£°²ó
,¤Ïɬ¤º£±²ó¥Ò¥Ã¥È¤¹¤ë
ex ¤¢,aaaa, or ,aaaa
¤«¤Ä
$GrepStr¡Ê\Q \E¤Î°Ï¤ß¤Ï¥á¥¿Ê¸»ú¥¨¥¹¥±¡¼¥×)¤Ë¥Ò¥Ã¥È¤¹¤ë
ʸ»úÎó¤ò @Hairetu¤«¤éÈ´¤½Ð¤· @PrintData¤Ë¥»¥Ã¥È
¢£´Ø¿ô
sub AAA
{
my $A = @_[0];
my $Ret = "";
return $Ret;
}
¸Æ½Ð»þ¤Ï &AAA("STR"); # &¤ò¤Ä¤±¤ë
¢£´Ä¶ÊÑ¿ô
print "\n*** ´Ä¶ÊÑ¿ô»²¾È ***\n";
$HOGE=$ENV{'HOGE'};
¢£È¾³Ñ¶õÇò¹Ô
$csvdata =~ /^\s\n/
¢£²þ¹Ô¥³¡¼¥É¤Î¤ß
$csvdata =~ m/^\n/
¢£Á´³Ñ¶õÇò¹Ô
$csvdata =~ /^¡¡\n/
¢£¥³¥á¥ó¥È¹Ô
$csvdata =~ /^#/
¢£¶õ¹Ô
$_ =~ /^$/
¢£¸½ºß»þ¹ï
($sec,$min,$hour,$day,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$NOW_DATE= sprintf("%04d%02d%02d_%02d%02d%02d", $year+1900, $mon+1, $day, $hour, $min, $sec);
¢£²þ¹Ô¥³¡¼¥É½üµî
$str =~ s/\n//g
¤Þ¤¿¤Ï
chomp($str);
¤µ¤é¤Ë
while(chomp($str)){}¤Ç²þ¹Ô¥³¡¼¥É¤¢¤ë¤À¤±½üµî
¢£Á°Êý¥È¥ê¥à(Ⱦ³ÑSP,¥¿¥Ö½üµî¡Ë
$str =~ s/^\s*//;
¢£Á°Êý¥È¥ê¥à(Ⱦ³ÑSP½üµî¡Ë
$str =~ s/^\s+//;
¢£¸åÊý¥È¥ê¥à(Ⱦ³ÑSP,¥¿¥Ö½üµî¡Ë
$str =~ s/\s*$//;
¢£Á°¸å¥È¥ê¥à(Ⱦ³ÑSP,¥¿¥Ö½üµî¡Ë
$val =~ s/^\s*(.*?)\s*$/$1/;
¢£Ê¸»ú¥³¡¼¥ÉÃÖ´¹
#MS¡¡¢ª¡¡UTF-8
$str = "[¡Á][¡Â][¡Ý][¡ñ][¡ò][¢Ì][¡½]";
print "ÃÖ´¹Á°¡§$str\n";
# ¡Á : EF BD 9E ¢ª E3 80 9C
# ¡Â : E2 88 A5 ¢ª EF 80 96
# ¡Ý : EF BC 8D ¢ª E2 88 92
$str =~ s/\xEF\xBD\x9E/\xE3\x80\x9C/g;
$str =~ s/\xE2\x88\xA5/\xE2\x80\x96/g;
$str =~ s/\xEF\xBC\x8D/\xE2\x88\x92/g ;
# ¡ñ : EF BF A0 ¢ª C2 A2
# ¡ò : EF BF A1 ¢ª C2 A3
# ¢Ì : EF BF A2 ¢ª C2 AC
# ¡½ : E2 80 95 ¢ª E2 80 94
$str =~ s/\xEF\xBF\xA0/\xC2\xA2/g;
$str =~ s/\xEF\xBF\xA1/\xC2\xA3/g;
$str =~ s/\xEF\xBF\xA2/\xC2\xAC/g;
$str =~ s/\xE2\x80\x95/\xE2\x80\x94/g;
print "ÃÖ´¹¸å¡§$str\n";
¢£ÇÛÎó
ex @ABC = "A","B","C";
¡ûÄɲà ¡§push(@ABC, D);
¡ûºÇ½ªÅº¤¨»ú ¡§$#ABC
# Í×ÁÇ¿ô¡¡0¸Ä = -1, 1¸Ä = 0
¡ûÍ×ÁÇ0ȽÄê ¡§if(!@ABC)
¡û»ØÄêÍ×ÁǺï½ü ¡§splice(@number, 1, 1);
# splice(ÂоÝÇÛÎó, ºï½ü³«»Ïꤍ»ú, ºï½üÍÑÁÇ¿ô) => A,C
¡û»ØÄêÍ×ÁǺï½ü ¡§splice(@number, $_, 1);
# ex $_ = B ¤Î¾ì¹ç¡¡splice(ÂоÝÇÛÎó, ºï½ü³«»ÏÍ×ÁÇ, ºï½üÍÑÁÇ¿ô) => A,B ¡úÍ×ÁÇ»ØÄê¤Ï¡Ü£±¤¬ºï½ü³«»ÏÍ×ÁǤˤʤ롪
¡û»ØÄêÍ×ÁÇÃÖ´¹ ¡§splice(@number, 0, 1, "1COLUMN"); # 1¥«¥é¥àÌܤò "1COLUMN"ʸ»úÎó¤ËÃÖ´¹¤¹¤ë
¡ûÀèÆ¬Í×ÁǺï½ü ¡§shift(@ABC) # º¸ÊÕÂåÆþ¤Çºï½üÍ×ÁǤòÂåÆþ¤¹¤ë¤³¤È¤â²Ä
¡ûºÇ½ªÍ×ÁǺï½ü ¡§pop(@ABC) # º¸ÊÕÂåÆþ¤Çºï½üÍ×ÁǤòÂåÆþ¤¹¤ë¤³¤È¤â²Ä
¡ûÇÛÎó¢ªÊ¸»úÎó ¡§join(",", @ABC);
¢£¥Õ¥¡¥¤¥ë
ex $FILE = "home/file";
¡ûºï½ü ¡§unlink $FILE
¡ûÆÉ¹þ ¡§
if (!open(IN, "¥Õ¥¡¥¤¥ë¥Ñ¥¹") { print "ERR!\n"; }
while()
{ $_ # ÆÉ¹þ¹Ô }
lose(IN); # ÆÉ¹þ¥Ç¡¼¥¿¤ò IN ¤Ë¼õ¤±¤Æ EOF¤Ë¤Ê¤ë¤Þ¤Ç
@READFILE =;
close(IN); # ÆÉ¹þ¥Ç¡¼¥¿¤ò IN ¤Ë¼õ¤±¤Æ ÇÛÎóÊÑ¿ô¤Ë³ÊǼ
¡û½ñ¹þ ¡§
if (!open(OUT, ">¥Õ¥¡¥¤¥ë¥Ñ¥¹")
{print "ERR!\n"; }
print OUT "¤¢¤¤¤¦\n";
close(OUT); # ¾å½ñ¤¥â¡¼¥É(>)¤Ç¥ª¡¼¥×¥ó¤·¤Æ print OUT xx¤Ç½ñ¹þ
¡§
if (!open(OUT, ">>¥Õ¥¡¥¤¥ë¥Ñ¥¹")
{print "ERR!\n"; }
print OUT "¤¢¤¤¤¦\n";
close(OUT); # Äɵ¥â¡¼¥É(>>)¤Ç¥ª¡¼¥×¥ó¤·¤Æ print OUT xx¤Ç½ñ¹þ
¢£¥á¥¿Ê¸»ú¥¨¥¹¥±¡¼¥×
/^\QÊÑ¿ô̾\E/
¢£¥½¡¼¥È
# ¿ô»ú¾º½ç
@BB=sort{$a <=> $b}@AA;
# ¿ô»ú¹ß½ç
@BB=sort{$b <=> $a}@AA;
# ʸ»úÎ󾺽ç
@BB=sort{$a cmp $b }@AA;
# ʸ»úÎó¹ß½ç
@BB=sort{$b cmp $a }@AA;
# csv¥Ç¡¼¥¿¤Ê¤É¡¡¹Ô¥Ç¡¼¥¿¤òÎóËè[n]¤Ë¥½¡¼¥È
@newarray = sort { (split(/\,/,$a))[0] <=> (split(/\,/,$b))[0] || (split(/\,/,$a))[1] <=> (split(/\,/,$b))[1] || (split(/\,/,$a))[2] <=> (split(/\,/,$b))[2] || (split(/\,/,$a))[3] <=> (split(/\,/,$b))[3]} @array;
# ¼¡¤Î¤è¤¦¤Ë¤·¤Æ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¤òºîÀ®¤·¡¢»ØÄꤹ¤ë¤³¤È¤â²Äǽ¡¡¢¨¥Õ¥¡¥ó¥¯¥·¥ç¥ó¤Ë¤Ï °ú¿ô¤È¤·¤Æ °ÅÌÛ¤Ë$a, $b¤¬ÅϤµ¤ì¤ë¡£Ìá¤êÃͤÏɬ¤º -1,0,1¤Ç¤¢¤ë¤³¤È
sort ¥Õ¥¡¥ó¥¯¥·¥ç¥ó @¥½¡¼¥ÈÁ°ÇÛÎóÊÑ¿ô
ex.¼êÀ½Comp´Ø¿ô #CSV¥Õ¥¡¥¤¥ë¤Ê¤É ¥Ç¡¼¥¿¹Ô¤¬ ,¥«¥ó¥Þ¶èÀÚ¤ê¤Ë¤Ê¤Ã¤Æ¤ë¾ì¹ç
# ¡¥½¡¼¥ÈÂоݥǡ¼¥¿ÇÛÎó¤Î͸ú¥Ç¡¼¥¿¹ÔÎó¤ò¥»¥Ã¥È
foreach (@CsvData){
if ($_ =~ /^#/) || ($_ =~ /^$/) {
next;
}
@PosData = split(/\,/, $_);
last;
}
# £¥½¡¼¥ÈÂоݥǡ¼¥¿¤ò¥½¡¼¥È´Ø¿ô¤Ç¥½¡¼¥È
sort SortFunc @CsvData
# ¢¥½¡¼¥È´Ø¿ô
sub SortFunc{
my @MyA;
my @MyB;
¡¡¡¡¡¡¡¡¡¡¡¡ @MyA = split(/\,/, $a) # Èæ³Ó¹Ô $a ¤ò ¥«¥ó¥Þ¶èÀÚ¤ê¤ÇÇÛÎ󤨥»¥Ã¥È
¡¡¡¡¡¡¡¡¡¡¡¡ @MyB = split(/\,/, $b) # Èæ³Ó¹Ô $b ¤ò ¥«¥ó¥Þ¶èÀÚ¤ê¤ÇÇÛÎ󤨥»¥Ã¥È
foreach (@PosData){
my $Pos = $_;
if (@MyA[$Pos] eq @MyB[$Pos]){
## ¼¡¤Ø
}elsif (@MyA[$Pos] lt @MyB[$Pos]){
# debug
#print LOG "[@MyA[$Pos]] < [@MyB[$Pos]]\n";
return -1;
}else{
# debug
#print LOG "[@MyA[$Pos]] > [@MyB[$Pos]]\n";
return 1;
}
}
# debug
#print LOG "[@MyA[$Pos]] = [@MyB[$Pos]]\n";
return 0;
}
¢£¥Ï¥Ã¥·¥å
¡¦¥Ç¡¼¥¿É½¼¨
while ( ( $key, $value ) = each( %UNIQUE_LIST ) ) {
print "end CretaeUnique ** [$key][$value]\n";
}
¡¦¥Ç¡¼¥¿¹¹¿·
ex %Hush
½é´ü²½ %Hush = ();
¡key : "majan_data", value : "0,0,0,0" ¤òºîÀ®
$Hush{"majan_data"} = sprintf("%d,%d,%d,%d", 0,0,0,0);
¢°ì¶É½ªÎ»¥Ç¡¼¥¿¹¹¿·
$Hush{"majan_data"} = sprintf("%d,%d,%d,%d", 100,-50,-50,0);
# Ʊ°ì key¤Çvalue¸Ä¿ô¤¬Æ±¤¸¤Ç¤¢¤ì¤ÐÃͤ¬¹¹¿·¤µ¤ì¤ë
¡¦¸Ä¿ô
@Cnt = keys(%Hush);
$#Cnt;
¡¦¥½¡¼¥È
foreach(sort keys %UNIQUE_KEY){
print "keys=$UNIQUE_KEY{$_}, value=$_ \n";
}
foreach(sort {$nedan{$a} <=> $nedan{$b}} keys %nedan){
printf "%+6s = %6d\n",$_,$nedan{$_};
}
¡¦»ÈÍÑË¡
my @exp_a = ("a","c","d","f");
my @exp_b = ("b","c","f","g");
my %A=();
foreach (@exp_a){
$A{$_}='a¤Î¤ß';
}
foreach (@exp_b){
if ($A{$_}){
$A{$_}='¤É¤Á¤é¤â´Þ¤à';
}else{
$A{$_}='b¤Î¤ß';
}
}
#--Ï¢ÁÛÇÛÎó¤òɽ¼¨
foreach (sort keys %A){
print "$_ = $A{$_}$/";
}
¡ã½ÐÎÏ·ë²Ì¡ä
a = a¤Î¤ß
b = b¤Î¤ß
c = ¤É¤Á¤é¤â´Þ¤à
d = a¤Î¤ß
f = ¤É¤Á¤é¤â´Þ¤à
g = b¤Î¤ß
¢£printf,sprintf¥Õ¥©¡¼¥Þ¥Ã¥È»ØÄê»Ò
%c ʸ»ú -Character
%d 10¿Ê¿ô -Deximal
%e ÉâÆ°¾¯¿ô¡Ê»Ø¿ô·Á¼°¡Ë -Exponential
%E ÉâÆ°¾¯¿ô¡ÊÂçʸ»ú¤ÎE¤ò»È¤Ã¤¿»Ø¿ô·Á¼°¡Ë
%f ÉâÆ°¾®¿ô¡Ê¸ÇÄê¾®¿ôÅÀ·Á¼°¡Ë -Floating
%g ÉâÆ°¾®¿ô¡ÊÉâÆ°¾¯¿ô¤Þ¤¿¤Ï»Ø¿ô·Á¼°¤Î¤¦¤Á¡¢¾¯¤Ê¤¤¥¹¥Ú¡¼¥¹¤Çɽ¸½¤Ç¤¤ëÊý¡Ë
%G %g ¤Î»Ø¿ôɽ¼¨¤òE¤Ë¤·¤¿¤â¤Î
%ld ÇÜÀºÅÙ10¿Ê¿ô -Long
%lo ÇÜÀºÅÙ8¿Ê¿ô
%lu ÇÜÀºÅÙÉ乿¤Ê¤·10¿Ê¿ô
%lx ÇÜÀºÅÙ16¿Ê¿ô
%n ¤¹¤Ç¤Ë½ÐÎϤ·¤¿Ê¸»ú¿ô¤ò¼¡¤ÎÊÑ¿ô¤Ë³ÊǼ
%o 8¿Ê¿ô -Octal
%p ¥Ý¥¤¥ó¥¿ ¡Ê16¿Ê¿ô¤Ç¤ÎÃͤΥ¢¥É¥ì¥¹¡Ë
%s ʸ»úÎó -String
%u É乿¤Ê¤·10¿Ê¿ô -Unsigned
%x É乿¤Ê¤·16¿Ê¿ô -heXadecimal
%X %x ¤ÈƱ¤¸¤À¤¬Âçʸ»ú¤ò»È¤¦
½¤¾þ»Ò -(%-nd) º¸´ó¤»¤Çɽ¼¨¡££î ¤Ïʸ»úÎó¤ÎŤµ
# 8¿Ê¤ÎÀ°¿ô¤Ï0¤Ç»Ï¤Þ¤ê¡¢16¿Ê¤ÎÀ°¿ô¤Ï0x¤Ç»Ï¤Þ¤ë¤è¤¦¤Ëɽ¼¨
(%nd) ¿ôÃÍÊÑ¿ô¤Î10¿ÊŸ³«¡Ö£î¡×¤Ïʸ»úÎó¤ÎŤµ¡£Ê¸»ú¿ô¤¬Â¤ê¤Ê¤¤¾ì¹ç¤Ï¥¹¥Ú¡¼¥¹¤ÇËä¤á¤ë
(%n.mf) ¾®¿ôÅÀÉÕ¤¿ôÃͤÎ10¿ÊŸ³«¡££î ¤Ïʸ»úÎó¤ÎŤµ¡¢m ¤Ï¾¯¿ôÅÀ°Ê²¼¤Î·å¿ô¤ò»ØÄê
+(%+d) É乿ÉÕ¤10¿ÊŸ³«¡£É乿+¤Þ¤¿¤Ï-¤ò¤Ä¤±¤ÆÉ½¼¨
0(%0nd) ʸ»ú¿ô¤¬Â¤ê¤Ê¤¤¾ì¹ç¤Ï0¤ÇËä¤á¤ë¡££î ¤Ïʸ»úÎó¤ÎŤµ
È÷˺Ͽ
¢£system¥³¥Þ¥ó¥É
# system¥³¥Þ¥ó¥É
system("date");
print `date`;
$dt = `date`;
print $dt;
# system¥³¥Þ¥ó¥É¥ê¥¿¡¼¥ó¥³¡¼¥É
system("sort -t, -k1,1 data.csv");
$ret = `echo $?`;
¢£Àµµ¬É½¸½È½Äê¤ÎÍî¤È¤··ê
$a = "¤¢¤¤¤¦";
if ($a =~ /^¤¢¤¤¤¦$/) ¢ª true #Á°¸åÊý´°Á´°ìÃ×
if ($a =~ /^¤¢¤¤/) ¢ª¡¡true¡¡#Á°Êý°ìÃ×
if ($a =~ /¤¤¤¦$/) ¢ª true¡¡#¸åÊý°ìÃ×
if ($a =~ /¤¤/) ¢ª true #Éôʬ°ìÃ×
ñ¤Ëʸ»úÎó¥Þ¥Ã¥Á¥ó¥°¤Ê¤é
if ($a eq "¤¢¤¤¤¦") ¢ª true #¥á¥¿Ê¸»ú¤âOK
¤È¤«
if (($a cmp "¤¢¤¤¤¦") == 0) ¢ª true #C¤Ç¤¤¤¦¤È¤³¤í¤Îstrcmp
¢£GREP¤Æ¤«Àµµ¬É½¸½
@PrintData = grep(/^(¤¢)?(¤¤)?(¤¦)?(¤¨)?(¤ª)?(\,){1}\Q$GrepStr\E/, @Hairetu);
ÀèÆ¬Ê¸»ú¤¬
¤¢¡Á¤ª¤Î¤¤¤º¤ì¤«¤Ç£±²ó¤Þ¤¿¤Ï£°²ó
,¤Ïɬ¤º£±²ó¥Ò¥Ã¥È¤¹¤ë
ex ¤¢,aaaa, or ,aaaa
¤«¤Ä
$GrepStr¡Ê\Q \E¤Î°Ï¤ß¤Ï¥á¥¿Ê¸»ú¥¨¥¹¥±¡¼¥×)¤Ë¥Ò¥Ã¥È¤¹¤ë
ʸ»úÎó¤ò @Hairetu¤«¤éÈ´¤½Ð¤· @PrintData¤Ë¥»¥Ã¥È
¢£´Ø¿ô
sub AAA
{
my $A = @_[0];
my $Ret = "";
return $Ret;
}
¸Æ½Ð»þ¤Ï &AAA("STR"); # &¤ò¤Ä¤±¤ë
¢£´Ä¶ÊÑ¿ô
print "\n*** ´Ä¶ÊÑ¿ô»²¾È ***\n";
$HOGE=$ENV{'HOGE'};
¢£È¾³Ñ¶õÇò¹Ô
$csvdata =~ /^\s\n/
¢£²þ¹Ô¥³¡¼¥É¤Î¤ß
$csvdata =~ m/^\n/
¢£Á´³Ñ¶õÇò¹Ô
$csvdata =~ /^¡¡\n/
¢£¥³¥á¥ó¥È¹Ô
$csvdata =~ /^#/
¢£¶õ¹Ô
$_ =~ /^$/
¢£¸½ºß»þ¹ï
($sec,$min,$hour,$day,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$NOW_DATE= sprintf("%04d%02d%02d_%02d%02d%02d", $year+1900, $mon+1, $day, $hour, $min, $sec);
¢£²þ¹Ô¥³¡¼¥É½üµî
$str =~ s/\n//g
¤Þ¤¿¤Ï
chomp($str);
¤µ¤é¤Ë
while(chomp($str)){}¤Ç²þ¹Ô¥³¡¼¥É¤¢¤ë¤À¤±½üµî
¢£Á°Êý¥È¥ê¥à(Ⱦ³ÑSP,¥¿¥Ö½üµî¡Ë
$str =~ s/^\s*//;
¢£Á°Êý¥È¥ê¥à(Ⱦ³ÑSP½üµî¡Ë
$str =~ s/^\s+//;
¢£¸åÊý¥È¥ê¥à(Ⱦ³ÑSP,¥¿¥Ö½üµî¡Ë
$str =~ s/\s*$//;
¢£Á°¸å¥È¥ê¥à(Ⱦ³ÑSP,¥¿¥Ö½üµî¡Ë
$val =~ s/^\s*(.*?)\s*$/$1/;
¢£Ê¸»ú¥³¡¼¥ÉÃÖ´¹
#MS¡¡¢ª¡¡UTF-8
$str = "[¡Á][¡Â][¡Ý][¡ñ][¡ò][¢Ì][¡½]";
print "ÃÖ´¹Á°¡§$str\n";
# ¡Á : EF BD 9E ¢ª E3 80 9C
# ¡Â : E2 88 A5 ¢ª EF 80 96
# ¡Ý : EF BC 8D ¢ª E2 88 92
$str =~ s/\xEF\xBD\x9E/\xE3\x80\x9C/g;
$str =~ s/\xE2\x88\xA5/\xE2\x80\x96/g;
$str =~ s/\xEF\xBC\x8D/\xE2\x88\x92/g ;
# ¡ñ : EF BF A0 ¢ª C2 A2
# ¡ò : EF BF A1 ¢ª C2 A3
# ¢Ì : EF BF A2 ¢ª C2 AC
# ¡½ : E2 80 95 ¢ª E2 80 94
$str =~ s/\xEF\xBF\xA0/\xC2\xA2/g;
$str =~ s/\xEF\xBF\xA1/\xC2\xA3/g;
$str =~ s/\xEF\xBF\xA2/\xC2\xAC/g;
$str =~ s/\xE2\x80\x95/\xE2\x80\x94/g;
print "ÃÖ´¹¸å¡§$str\n";
¢£ÇÛÎó
ex @ABC = "A","B","C";
¡ûÄɲà ¡§push(@ABC, D);
¡ûºÇ½ªÅº¤¨»ú ¡§$#ABC
# Í×ÁÇ¿ô¡¡0¸Ä = -1, 1¸Ä = 0
¡ûÍ×ÁÇ0ȽÄê ¡§if(!@ABC)
¡û»ØÄêÍ×ÁǺï½ü ¡§splice(@number, 1, 1);
# splice(ÂоÝÇÛÎó, ºï½ü³«»Ïꤍ»ú, ºï½üÍÑÁÇ¿ô) => A,C
¡û»ØÄêÍ×ÁǺï½ü ¡§splice(@number, $_, 1);
# ex $_ = B ¤Î¾ì¹ç¡¡splice(ÂоÝÇÛÎó, ºï½ü³«»ÏÍ×ÁÇ, ºï½üÍÑÁÇ¿ô) => A,B ¡úÍ×ÁÇ»ØÄê¤Ï¡Ü£±¤¬ºï½ü³«»ÏÍ×ÁǤˤʤ롪
¡û»ØÄêÍ×ÁÇÃÖ´¹ ¡§splice(@number, 0, 1, "1COLUMN"); # 1¥«¥é¥àÌܤò "1COLUMN"ʸ»úÎó¤ËÃÖ´¹¤¹¤ë
¡ûÀèÆ¬Í×ÁǺï½ü ¡§shift(@ABC) # º¸ÊÕÂåÆþ¤Çºï½üÍ×ÁǤòÂåÆþ¤¹¤ë¤³¤È¤â²Ä
¡ûºÇ½ªÍ×ÁǺï½ü ¡§pop(@ABC) # º¸ÊÕÂåÆþ¤Çºï½üÍ×ÁǤòÂåÆþ¤¹¤ë¤³¤È¤â²Ä
¡ûÇÛÎó¢ªÊ¸»úÎó ¡§join(",", @ABC);
¢£¥Õ¥¡¥¤¥ë
ex $FILE = "home/file";
¡ûºï½ü ¡§unlink $FILE
¡ûÆÉ¹þ ¡§
if (!open(IN, "¥Õ¥¡¥¤¥ë¥Ñ¥¹") { print "ERR!\n"; }
while(
{ $_ # ÆÉ¹þ¹Ô }
lose(IN); # ÆÉ¹þ¥Ç¡¼¥¿¤ò IN ¤Ë¼õ¤±¤Æ EOF¤Ë¤Ê¤ë¤Þ¤Ç
@READFILE =
close(IN); # ÆÉ¹þ¥Ç¡¼¥¿¤ò IN ¤Ë¼õ¤±¤Æ ÇÛÎóÊÑ¿ô¤Ë³ÊǼ
¡û½ñ¹þ ¡§
if (!open(OUT, ">¥Õ¥¡¥¤¥ë¥Ñ¥¹")
{print "ERR!\n"; }
print OUT "¤¢¤¤¤¦\n";
close(OUT); # ¾å½ñ¤¥â¡¼¥É(>)¤Ç¥ª¡¼¥×¥ó¤·¤Æ print OUT xx¤Ç½ñ¹þ
¡§
if (!open(OUT, ">>¥Õ¥¡¥¤¥ë¥Ñ¥¹")
{print "ERR!\n"; }
print OUT "¤¢¤¤¤¦\n";
close(OUT); # Äɵ¥â¡¼¥É(>>)¤Ç¥ª¡¼¥×¥ó¤·¤Æ print OUT xx¤Ç½ñ¹þ
¢£¥á¥¿Ê¸»ú¥¨¥¹¥±¡¼¥×
/^\QÊÑ¿ô̾\E/
¢£¥½¡¼¥È
# ¿ô»ú¾º½ç
@BB=sort{$a <=> $b}@AA;
# ¿ô»ú¹ß½ç
@BB=sort{$b <=> $a}@AA;
# ʸ»úÎ󾺽ç
@BB=sort{$a cmp $b }@AA;
# ʸ»úÎó¹ß½ç
@BB=sort{$b cmp $a }@AA;
# csv¥Ç¡¼¥¿¤Ê¤É¡¡¹Ô¥Ç¡¼¥¿¤òÎóËè[n]¤Ë¥½¡¼¥È
@newarray = sort { (split(/\,/,$a))[0] <=> (split(/\,/,$b))[0] || (split(/\,/,$a))[1] <=> (split(/\,/,$b))[1] || (split(/\,/,$a))[2] <=> (split(/\,/,$b))[2] || (split(/\,/,$a))[3] <=> (split(/\,/,$b))[3]} @array;
# ¼¡¤Î¤è¤¦¤Ë¤·¤Æ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¤òºîÀ®¤·¡¢»ØÄꤹ¤ë¤³¤È¤â²Äǽ¡¡¢¨¥Õ¥¡¥ó¥¯¥·¥ç¥ó¤Ë¤Ï °ú¿ô¤È¤·¤Æ °ÅÌÛ¤Ë$a, $b¤¬ÅϤµ¤ì¤ë¡£Ìá¤êÃͤÏɬ¤º -1,0,1¤Ç¤¢¤ë¤³¤È
sort ¥Õ¥¡¥ó¥¯¥·¥ç¥ó @¥½¡¼¥ÈÁ°ÇÛÎóÊÑ¿ô
ex.¼êÀ½Comp´Ø¿ô #CSV¥Õ¥¡¥¤¥ë¤Ê¤É ¥Ç¡¼¥¿¹Ô¤¬ ,¥«¥ó¥Þ¶èÀÚ¤ê¤Ë¤Ê¤Ã¤Æ¤ë¾ì¹ç
# ¡¥½¡¼¥ÈÂоݥǡ¼¥¿ÇÛÎó¤Î͸ú¥Ç¡¼¥¿¹ÔÎó¤ò¥»¥Ã¥È
foreach (@CsvData){
if ($_ =~ /^#/) || ($_ =~ /^$/) {
next;
}
@PosData = split(/\,/, $_);
last;
}
# £¥½¡¼¥ÈÂоݥǡ¼¥¿¤ò¥½¡¼¥È´Ø¿ô¤Ç¥½¡¼¥È
sort SortFunc @CsvData
# ¢¥½¡¼¥È´Ø¿ô
sub SortFunc{
my @MyA;
my @MyB;
¡¡¡¡¡¡¡¡¡¡¡¡ @MyA = split(/\,/, $a) # Èæ³Ó¹Ô $a ¤ò ¥«¥ó¥Þ¶èÀÚ¤ê¤ÇÇÛÎ󤨥»¥Ã¥È
¡¡¡¡¡¡¡¡¡¡¡¡ @MyB = split(/\,/, $b) # Èæ³Ó¹Ô $b ¤ò ¥«¥ó¥Þ¶èÀÚ¤ê¤ÇÇÛÎ󤨥»¥Ã¥È
foreach (@PosData){
my $Pos = $_;
if (@MyA[$Pos] eq @MyB[$Pos]){
## ¼¡¤Ø
}elsif (@MyA[$Pos] lt @MyB[$Pos]){
# debug
#print LOG "[@MyA[$Pos]] < [@MyB[$Pos]]\n";
return -1;
}else{
# debug
#print LOG "[@MyA[$Pos]] > [@MyB[$Pos]]\n";
return 1;
}
}
# debug
#print LOG "[@MyA[$Pos]] = [@MyB[$Pos]]\n";
return 0;
}
¢£¥Ï¥Ã¥·¥å
¡¦¥Ç¡¼¥¿É½¼¨
while ( ( $key, $value ) = each( %UNIQUE_LIST ) ) {
print "end CretaeUnique ** [$key][$value]\n";
}
¡¦¥Ç¡¼¥¿¹¹¿·
ex %Hush
½é´ü²½ %Hush = ();
¡key : "majan_data", value : "0,0,0,0" ¤òºîÀ®
$Hush{"majan_data"} = sprintf("%d,%d,%d,%d", 0,0,0,0);
¢°ì¶É½ªÎ»¥Ç¡¼¥¿¹¹¿·
$Hush{"majan_data"} = sprintf("%d,%d,%d,%d", 100,-50,-50,0);
# Ʊ°ì key¤Çvalue¸Ä¿ô¤¬Æ±¤¸¤Ç¤¢¤ì¤ÐÃͤ¬¹¹¿·¤µ¤ì¤ë
¡¦¸Ä¿ô
@Cnt = keys(%Hush);
$#Cnt;
¡¦¥½¡¼¥È
foreach(sort keys %UNIQUE_KEY){
print "keys=$UNIQUE_KEY{$_}, value=$_ \n";
}
foreach(sort {$nedan{$a} <=> $nedan{$b}} keys %nedan){
printf "%+6s = %6d\n",$_,$nedan{$_};
}
¡¦»ÈÍÑË¡
my @exp_a = ("a","c","d","f");
my @exp_b = ("b","c","f","g");
my %A=();
foreach (@exp_a){
$A{$_}='a¤Î¤ß';
}
foreach (@exp_b){
if ($A{$_}){
$A{$_}='¤É¤Á¤é¤â´Þ¤à';
}else{
$A{$_}='b¤Î¤ß';
}
}
#--Ï¢ÁÛÇÛÎó¤òɽ¼¨
foreach (sort keys %A){
print "$_ = $A{$_}$/";
}
¡ã½ÐÎÏ·ë²Ì¡ä
a = a¤Î¤ß
b = b¤Î¤ß
c = ¤É¤Á¤é¤â´Þ¤à
d = a¤Î¤ß
f = ¤É¤Á¤é¤â´Þ¤à
g = b¤Î¤ß
¢£printf,sprintf¥Õ¥©¡¼¥Þ¥Ã¥È»ØÄê»Ò
%c ʸ»ú -Character
%d 10¿Ê¿ô -Deximal
%e ÉâÆ°¾¯¿ô¡Ê»Ø¿ô·Á¼°¡Ë -Exponential
%E ÉâÆ°¾¯¿ô¡ÊÂçʸ»ú¤ÎE¤ò»È¤Ã¤¿»Ø¿ô·Á¼°¡Ë
%f ÉâÆ°¾®¿ô¡Ê¸ÇÄê¾®¿ôÅÀ·Á¼°¡Ë -Floating
%g ÉâÆ°¾®¿ô¡ÊÉâÆ°¾¯¿ô¤Þ¤¿¤Ï»Ø¿ô·Á¼°¤Î¤¦¤Á¡¢¾¯¤Ê¤¤¥¹¥Ú¡¼¥¹¤Çɽ¸½¤Ç¤¤ëÊý¡Ë
%G %g ¤Î»Ø¿ôɽ¼¨¤òE¤Ë¤·¤¿¤â¤Î
%ld ÇÜÀºÅÙ10¿Ê¿ô -Long
%lo ÇÜÀºÅÙ8¿Ê¿ô
%lu ÇÜÀºÅÙÉ乿¤Ê¤·10¿Ê¿ô
%lx ÇÜÀºÅÙ16¿Ê¿ô
%n ¤¹¤Ç¤Ë½ÐÎϤ·¤¿Ê¸»ú¿ô¤ò¼¡¤ÎÊÑ¿ô¤Ë³ÊǼ
%o 8¿Ê¿ô -Octal
%p ¥Ý¥¤¥ó¥¿ ¡Ê16¿Ê¿ô¤Ç¤ÎÃͤΥ¢¥É¥ì¥¹¡Ë
%s ʸ»úÎó -String
%u É乿¤Ê¤·10¿Ê¿ô -Unsigned
%x É乿¤Ê¤·16¿Ê¿ô -heXadecimal
%X %x ¤ÈƱ¤¸¤À¤¬Âçʸ»ú¤ò»È¤¦
½¤¾þ»Ò -(%-nd) º¸´ó¤»¤Çɽ¼¨¡££î ¤Ïʸ»úÎó¤ÎŤµ
# 8¿Ê¤ÎÀ°¿ô¤Ï0¤Ç»Ï¤Þ¤ê¡¢16¿Ê¤ÎÀ°¿ô¤Ï0x¤Ç»Ï¤Þ¤ë¤è¤¦¤Ëɽ¼¨
(%nd) ¿ôÃÍÊÑ¿ô¤Î10¿ÊŸ³«¡Ö£î¡×¤Ïʸ»úÎó¤ÎŤµ¡£Ê¸»ú¿ô¤¬Â¤ê¤Ê¤¤¾ì¹ç¤Ï¥¹¥Ú¡¼¥¹¤ÇËä¤á¤ë
(%n.mf) ¾®¿ôÅÀÉÕ¤¿ôÃͤÎ10¿ÊŸ³«¡££î ¤Ïʸ»úÎó¤ÎŤµ¡¢m ¤Ï¾¯¿ôÅÀ°Ê²¼¤Î·å¿ô¤ò»ØÄê
+(%+d) É乿ÉÕ¤10¿ÊŸ³«¡£É乿+¤Þ¤¿¤Ï-¤ò¤Ä¤±¤ÆÉ½¼¨
0(%0nd) ʸ»ú¿ô¤¬Â¤ê¤Ê¤¤¾ì¹ç¤Ï0¤ÇËä¤á¤ë¡££î ¤Ïʸ»úÎó¤ÎŤµ








