Perl

【これだけ覚えりゃなんとか使えるPerlメモ9】TCPサーバとクライアント

日時を返却するTCPサーバと、TCPサーバにアクセスするクライアントの例。tcp_server.pl #! /usr/bin/perl # 日時を返却するTCPサーバ use Socket; $port = shift || 9999; $proto = getprotobyname('tcp'); socket(ListenSock, PF_INET, SOCK_STREAM, $proto…

【これだけ覚えりゃなんとか使えるPerlメモ8】行数カウント

指定ファイルの行数をカウントする簡単なプログラム例 #! /usr/bin/perl if (@ARGV == 1) { die "$ARGV[0] not exist \n$!" unless -e $ARGV[0]; open ( STDIN, $ARGV[0] ) || die "Can't open file \n"; } while (<STDIN>) { $line_count++; } print $line_count, </stdin>…

【これだけ覚えりゃなんとか使えるPerlメモ7】各種変換処理

文字列を小文字化 $str =~ tr/[A-Z]/[a-z]/; 文字列を大文字化 $str =~ tr/[a-z]/[A-Z]/; 10進->8進変換 $out = sprintf("%o", $in); 8進->10進変換 $out = oct($in); 10進->16進変換 $out = sprintf("%x", $in); 16進->10進変換 $out = hex($in); 日付の書…

【これだけ覚えりゃなんとか使えるPerlメモ6】ファイルとディレクトリの操作

ファイルサイズの取得 $a = 'hoge.txt'; $size = -s $a; print "$aのサイズは$sizeです。\n"; ファイルの存在チェック die "A file called '$filename' already exists. \n" if -e $filename; または、以下でも同じ if ( -e $file ){ die "A file called '$f…

【これだけ覚えりゃなんとか使えるPerlメモ5】入出力

ユーザ入力 スカラコンテキストで受ける chomp($line = <STDIN>) リストコンテキストで受ける chomp(@lines = <STDIN>) 入力を終了するにはCtrl-D(WinではCtrl-z) ユーザからの応答読み取り ユーザからの応答読み取り print STDOUT "Enter a number: "; # 数の入力を促す</stdin></stdin>…

【これだけ覚えりゃなんとか使えるPerlメモ4】制御構造

制御構造(if) 必ずブレースで囲まなければならない。 if ( $var eq 'A' ) { .... } if ( $var eq 'A' or $var eq 'B' ){ .... } if ( $var eq 'A' ) { .... } elsif ( $var eq 'B' ) { .... } else { .... } 制御構造(while) $count = 0; while ($count < 10…

【これだけ覚えりゃなんとか使えるPerlメモ3】演算子

算術演算子 演算子 説明 例題 + 加算 $x = 10+2 # $x の値は 12 - 減算 $x = 10-2 # $x の値は 8 * 乗算(×) $x = 10*2 # $x の値は 20 / 除算(÷) $x = 10/2 # $x の値は 5 % 剰余 $x = 10%2 # $x の値は 0 ** 累乗 $x = 10** # $x の値は 100 ++ インク…

【これだけ覚えりゃなんとか使えるPerlメモ2】リテラルと変数型

リテラル 整数リテラル 整数リテラルは以下のようなもので、_にて読みやすくすることもできる(桁区切り)。 0 2001 -20 30_289また、0で始まるものは8進数、0xで始まるものは16進数、0bで始まるものは2進数として扱われる。 浮動小数リテラル 浮動小数は以下…

【これだけ覚えりゃなんとか使えるPerlメモ1】Hello World

1行perl 伝統的な Hello World の 1行 perl。 -e オプションは続くperlコードを実行する。 $ perl -e 'print "Hello World\n";' 出力 Hello World スクリプトの作成 hello.pl を作成、実行する。 #!/usr/bin/perl print "Hello World\n"; 出力 $ chmod a+x h…