2018-01-01から1年間の記事一覧

cos関数 - コサインを求める

Perl › 関数 › here cos関数を使用するとコサインを求めることができます。角度はπ(pi関数)を使って、弧度法で指定するのが簡単です。 use Math::Trig 'pi'; cos(pi/3); (参考)Math::Trig三角関数については以下のページで詳しく解説しています。 三角関数を…

最終更新から経過した日数を取得する

Perl › 演算子 › ファイルテスト › here 最終更新から経過した日数を取得するにはファイルテスト演算子「-M」を使用します。 -M $file サンプルプログラム ファイル演算子 -M を使って最終更新から経過した日数を取得するサンプルです。 use strict; use war…

最終アクセスから経過した日数を取得する

Perl › 演算子 › ファイルテスト › here 最終アクセスから経過した日数を取得するには、ファイルテスト演算子「-A」を使用します。 -A $file サンプルプログラム ファイル演算子 -A を使って最終アクセスから経過した日数を取得するサンプルです。 use stric…

環境変数を取得・設定する %ENV

Perl › 特殊変数 › here 環境変数は特殊変数「%ENV」を使うことで、取得・設定することができます。 %ENV この環境変数はハッシュで、環境変数名がキーになっています。たとえば、環境変数「REMOTE_ADDR」の場合は以下のようにして値を参照できます。 my $re…

プログラム名を取得する $0

Perl › 特殊変数 › here プログラム名を取得するには特殊変数「$0」を使用します。 $0; プログラムを起動したときの名前を取得できます。つまり、絶対パスでプログラムを指定すれば、絶対パス名が、カレントディレクトリから、相対パスで指定した場合は、相…

モジュールの検索パス @INC

Perl › 特殊変数 › here モジュールの検索パスの一覧は特殊変数「@INC」に代入されています。 @INC モジュールの検索パスとは、Perlが、モジュールを読み込むために、検索するディレクトリのことです。@INC に、含まれないディレクトリに置かれたモジュール…

morboをWindowsで動かすツール - winmorbo

Mojolicious開発サーバー「morbo」をWindowsでうまく動作させるツールwinmorboをリリースしました。 winmorbo Windowsでは、Mojolicious開発サーバーmorboはうまく動きません。なぜなら、ワーカープロセスは親TERMシグナルをうまく受信できないからです。こ…

readline関数 - 1行読み込み

readline関数を使用すると、1行読み込みを行うことができます。 readline ファイルハンドル readline関数は、行入力演算子と機能がまったく同じです。Perlでは、慣習的に、行入力演算子を使うことが、ほとんどなので、行入力演算子を使うほうがよいでしょう…

無限大(Inf)、無限小(-Inf)、非数(NaN)を得るには

Perlで無限大(Inf)、無限小(-Inf)、非数(NaN)の数値表現を得るには以下のようにします。 無限大 Inf 正の方向でオーバーフローする浮動小数点演算を行うと無限大(Inf)を得ることができます。 9**9**9 無限小 -Inf 負の方向でオーバーフローする浮動小数点演…

2018年のPerl入学式の紹介

2018年度のPerl入学式始動! ということで、スケジュールを紹介しますね。ちなみに、4月21日のPerl入学式には、僕もサポーターで参加します。勉強会こわいなという方も、Perl入学式は、初心者に親切な勉強会なので、勇気をふるって参加してみてはいかがでしょ…

unless修飾子 - 後置のunless

Perl › 構文 › here unless修飾子を使うとunlessを後置することができます。 文 unless 条件; unless修飾子を使ったサンプルです。$numが定義されていない場合に、「$num」に1を代入するという処理を行っています。 $num = 1 unless defined $num; 一行で書…

Fcntl - flock/seek/sysopen関数の定数をインポート

Perl › モジュール › here Fcntl関数を使用すると、flock関数やseek関数で利用する定数をインポートすることができます。 # flock関数の定数 use Fcntl ':flock'; # seek関数の定数 use Fcntl ':seek'; # sysopen関数の定数 use Fcntl ':DEFAULT'; flock関数…

Time::HiRes - マイクロ秒単位でスリープする

Perl › モジュール › here Time::HiResは、高精度なsleepを提供します。usleep関数を使えば、マイクロ秒単位でスリープすることができます。sleep関数は、1秒が最小単位ですが、usleep関数を使えば、ミリ秒やマイクロ秒の単位でスリープできます。 use Time:…

スカラ変数のリファレンス

Perl › リファレンス › here スカラ変数のリファレンスは、スカラ変数を指し示すものです。 スカラ変数のリファレンスの作成 スカラ変数のリファレンスを作成するには次のようにします。 my $str = "Hello"; my $str_ref = \$str; スカラ変数のリファレンス…

デリファレンス

Perl › 演算子 › here デリファレンスとはリファレンスを作成するのと反対の操作で、リファレンスから実体を取り出すことができます。 配列のリファレンスをデリファレンス 配列のリファレンスをデリファレンスするには「@{}」を使用します。 my @array = @{…

変数展開

Perl › 構文・文法 › here Perlには文字列の中で変数を利用することができる変数展開という機能があります。文字列はダブルクォートで囲う必要があります。 my $str2 = "AAA $str1 CCC"; 文字列の中で直接変数を利用することができるので、文字列連結演算子…

繰り返し演算子「x」

Perl › 演算子 › here 繰り返し演算子「x」を使用すると、文字列あるいは配列を繰り返し回数だけ、連結することができます。 # 文字列を繰り返し連結 my $str2 = $str1 x 3; # 配列を繰り返し連結 my @array2 = @array1 x 3; 文字列を繰り返し連結するサンプ…

デクリメント演算子「--」

Perl › 演算子 › 算術演算子 › here デクリメント演算子を使用すると、変数に代入されている数値から1を減算することができます。デクリメント演算子は、変数の前か後につけることができます。 # デクリメント(後置) $num--; # デクリメント(前置) --$num; …

インクリメント演算子「++」

Perl › 演算子 › 算術演算子 › here インクリメント演算子を使用すると、変数に代入されている数値に1を加算することができます。インクリメント演算子は、変数の前か後につけることができます。 # インクリメント(後置) $num++; # インクリメント(前置) ++$…

剰余演算子「%」 - 余りを求める

Perl › 演算子 › 算術演算子 › here 剰余演算子「%」を使用すると、数値の余りを求めることができます。 my $num3 = $num1 % $num2; 11を3で割った余りを求めるサンプルです。 my $num = 11 % 3; 余りは2になります。 算術演算子の解説 剰余演算子は、算術演…

除算演算子「/」 - 数値の割り算

Perl › 演算子 › 算術演算子 › here 除算演算子「/」を使用すると、数値の割り算を行うことができます。 my $num3 = $num1 / $num2; 3を5で割り算するサンプルです。 my $num = 3 / 5; Perlでは、少数の割り算も型を意識しないで行うことができます。 my $nu…

乗算演算子「*」 - 数値の掛け算

Perl › 演算子 › 算術演算子 › here 乗算演算子「*」を使用すると、数値の掛け算を行うことができます。 my $num3 = $num1 * $num2; 3と5を掛け算するサンプルです。 my $num = 3 * 5; Perlでは、少数の掛け算も型を意識しないで行うことができます。 my $nu…

減算演算子「-」 - 数値の引き算

Perl › 演算子 › 算術演算子 › here 減算演算子「-」を使用すると、数値の引き算を行うことができます。 my $num3 = $num1 - $num2; 3から5を引き算するサンプルです。 my $total = 3 - 5; Perlでは、少数の引き算も型を意識しないで行うことができます。 my…

加算演算子「+」 - 数値の足し算

Perl › 演算子 › 算術演算子 › here 加算演算子「+」を使用すると、数値の足し算を行うことができます。 my $num3 = $num1 + $num2; 3と5を足し算するサンプルです。 my $total = 3 + 5; Perlでは、少数の足し算も型を意識しないで行うことができます。 my $…

配列のリファレンス

Perl › リファレンス › here Perlには配列のリファレンスというデータ構造が頻繁に登場します。このページでは、リファレンスの中から配列のリファレンスを詳しく取り上げます。 配列のリファレンスとは 配列のリファレンスとは、配列に対するリファレンスの…

ハッシュのリファレンス

Perl › リファレンス › here Perlにはハッシュのリファレンスというデータ構造が頻繁に登場します。このページでは、リファレンスの中からハッシュのリファレンスを詳しく取り上げます。 ハッシュのリファレンスとは ハッシュのリファレンスとは、ハッシュに…

バッククォート演算子 - 別プロセスを実行し標準出力を取得

Perl › 演算子 › here バッククォート演算子を使うと、別のプロセスを実行し、プロセスが生成した標準出力を取得することができます。 # バッククォート演算子 my $output = `$cmd`; system関数とかなりよく似ていますね。system関数が戻り値として、終了ス…

or演算子 - 優先順位が低い論理和

Perl › 演算子 › here orはPerlの論理演算子のひとつで、論理和を表現します。||と意味は同じですが、orの方が演算子の優先順位が低く、文と文の間に利用するのが一般的です。 文1 or 文2 このように記述すると、文1が偽を返したときに、文2が実行されます。…

system関数 - 別プロセスを実行する

Perl › 関数 › here system関数を使うと、別のプロセスを実行することができます。 system $cmd; プロセスが正常に終了した場合は0が戻り値として返されます。エラーチェックは次のように行うことができます。tarやgzipなどのコマンドを実行したい場合はsyst…

デストラクタ - DESTROY

Perl › 構文・文法 › here Perlはリファレンスカウント方式のGCを持つプログラミング言語です。オブジェクトが解放されるのは、リファレンスカウントが0になった場合です。DESTROYというメソッドを実装することで、リファレンスカウントが0になるタイミング…