ブックマーク / perlcodesample.hatenadiary.jp (386)

  • Perlのインストール方法 - Windws、macOS、Linux対応 - Perl入門ゼミ

    Perl › here Perlのインストール方法を解説します。Windws、macOSLinuxでそれぞれPerlのインストール方法を紹介します。 WindowsにおけるPerlのインストール macOSにおけるPerlのインストール Unix/LinuxにおけるPerlのインストール WindowsにおけるPerlのインストール PerlはUnix/Linux生まれの言語ですが、Windowsを使っている人も簡単にPerlをインストールすることができます。3種類の方法を紹介します。 Strawberry Perlのインストール Strawberry Perl(ストロベリーパール)は、WindowsPerlを使えるように設定されたPerlのひとつです。Linux環境に近い形でPerlが利用できるので、まずはこれがお勧めです。 Strawberry Perl(ストロベリーパール)をWi

    Perlのインストール方法 - Windws、macOS、Linux対応 - Perl入門ゼミ
  • plenv - ユーザー環境にPerlをインストールする - Perl入門ゼミ

    Perl › モジュール › here plenvというツールを利用すると、ユーザー環境にPerlをインストールすることができます。システム標準のPerlを利用したくない場合や新しいバージョンのPerlを利用したい場合は便利です。またplenvを使うと複数のバージョンのPerlの切り替えを行うことができます。 plenvのインストール plenvをインストールしてみましょう。前提として、plenvをインストールするにはgitがインストールされている必要があるので注意してください。 以下のコマンドを実行します。 git clone git://github.com/tokuhirom/plenv.git ~/.plenv git clone git://github.com/tokuhirom/Perl-Build.git ~/.plenv/plugins/perl-build/ 次にple

    plenv - ユーザー環境にPerlをインストールする - Perl入門ゼミ
  • macOSへのPerlのインストール - Perl入門ゼミ

    Perl › インストール macOSの環境には、すでにPerlがインストールされています。 以下のコマンドでPerlがインストールされているか確認してみましょう。 perl -v バージョン情報が表示されれば、OKです。 さっそく、Perlを使い始めてみましょう。 ユーザー環境へのPerlのインストール 最新のPerlなどを使いたい場合は、ユーザー環境にPerlをインストールすることもできます。 自分のユーザー環境にPerlをインストールしたい場合はperlbrewあるいはplenvというツールを使うことができます。 ルート権限が必要ないので、インストールが簡単で、OSの環境を汚しません。最新のPerlをインストールして使うことができます。 番環境のWebサービスPerlを実行する場合は、この方法が2018年現在は主流となっています。 perlbrewとplenvはどちらも、似ている

    macOSへのPerlのインストール - Perl入門ゼミ
  • 雅なPerl入門 - 雅ちゃんが大学生クロウにPerlを学ぶ物語 - Perl入門ゼミ

    雅(みやび)なPerl入門は、雅ちゃんが大学生クロウにPerlを学ぶ物語形式で、Perlを学べる入門書。 「Perlを教えてくださいっ!」 ある日突然、twitterのダイレクトメッセージにメッセージが飛び込んできた。それは女の子からのものだった。どうせまたスパムだろう。最初はそう思っていたのでメッセージを無視し続けていたのだ。しかし、その後もメッセージは送られ続けてきた。 そんな俺がPerlを教えることになるとは。ただ、俺は面倒見は良い方だから、こういう話は断れない性格なのだ。決して女の子にPerlを教えたいがためではないのだ。 「ところで名前はなんていうの?」 「雅といいます!」 そんなこんなで俺はPerlを教えることになったのだ。 「やれやれだ」 (第一章プロローグより) 会話形式で、進んでいくので、Perlを学びながら楽しく読み進めていくことができます。 第二章。 第三章。 「表紙

    雅なPerl入門 - 雅ちゃんが大学生クロウにPerlを学ぶ物語 - Perl入門ゼミ
  • scalar関数 - スカラコンテキストで評価

    Perl › 関数 › here scalar関数を使用すると、スカラコンテキストを強制することができます。 # スカラコンテキストで評価 scalar 実行文 たとえば配列をスカラコンテキストで評価すると配列の個数が取り出せますが、scalar関数を使って明示的に書くと以下のようになります。 # 配列の個数 my $count = scalar @values; scalar関数は使わなくってよい? プログラムを工夫して書けばscalar関数を使わないでプログラムを書くことができます。 たとえば、サブルーチンの引数に値を渡す場合は、変数を経由して渡すようにします。 # 配列の個数を直接渡す foo(scalar @values); # 配列の個数をスカラ変数に保存してから渡す my $count = @values; foo($count); 変数名を上手につけると自己説明的になって、プ

    scalar関数 - スカラコンテキストで評価
  • Fcntl - flock/seek関数の定数をインポート

    Perl › モジュール › here Fcntl関数を使用すると、flock関数やseek関数で利用する定数をインポートすることができます。 # flock関数の定数 use Fcntl ':flock'; # seek関数の定数 use Fcntl ':seek'; # sysopen関数の定数 use Fcntl ':DEFAULT'; flock関数で使う定数 インポートされるflock関数で使う定数です。 LOCK_SH 読み込みロック LOCK_EX 書き込みロック LOCK_NB ノンブロッキングモード LOCK_UN ロック解除 seek関数で使う定数 インポートされるseek関数で使う定数です。 SEEK_SET ファイルの先頭 SEEK_CUR 現在位置 SEEK_END ファイルの最後 sysopen関数で使う定数 インポートされるsysopen関数で使うファイルモー

    Fcntl - flock/seek関数の定数をインポート
  • Time::HiRes - マイクロ秒単位でスリープする

    Perl › モジュール › here Time::HiResは、高精度なsleepを提供します。 usleep関数を使えば、マイクロ秒単位でスリープすることができます。sleep関数は、1秒が最小単位ですが、usleep関数を使えば、ミリ秒やマイクロ秒の単位でスリープできます。 use Time::HiRes 'usleep'; usleep $microseconds; 単位は、マイクロ秒です、ミリ秒はその千倍になります。たとえば、0.1秒スリープしたい場合は、以下のように書きます。 usleep(100 * 1000); 高精度のアラーム、時刻、インターバル・タイマー Time::HiResは、スリープ機能のほかに、高精度のアラーム、時刻、インターバル・タイマーを提供しています。 1秒以下の単位で、アラームを設定したり、1秒以下の時間の感覚を取得することができます。 詳しくは、Tim

    Time::HiRes - マイクロ秒単位でスリープする
  • morboをWindowsで動かすツール - winmorbo

    Mojolicious開発サーバー「morbo」をWindowsでうまく動作させるツールwinmorboをリリースしました。 winmorbo Windowsでは、Mojolicious開発サーバーmorboはうまく動きません。なぜなら、ワーカープロセスは親TERMシグナルをうまく受信できないからです。 このため、Windows上では、Web開発は、とても面倒なものになります。 Windowsでmorboをうまく動作させるため、Mojo::Server::Morboを簡単な方法でハックしました。 winmorboのインストール方法 winmorbo.batのダウンロード まず、Mojoliciousプロジェクトディレクトリにwinmorb.batをダウンロードします。 winmorbo - Github GitHubでwinmorbo.batをクリックし、Rawボタンをクリックしてwinm

    morboをWindowsで動かすツール - winmorbo
  • 2018年のPerl入学式の紹介 - Perl入門ゼミ

    2018年度のPerl入学式始動! ということで、スケジュールを紹介しますね。 ちなみに、4月21日のPerl入学式には、僕もサポーターで参加します。 勉強会こわいなという方も、Perl入学式は、初心者に親切な勉強会なので、勇気をふるって参加してみてはいかがでしょうか。春に始まる第一回が開催されますよ! Perl入学式 in東京 第1回 2018年4月21日(土) 時間 13:00 - 19:00 定員 30人 (現在7名参加, 0名補欠) 会場 株式会社ガイアックス KSS五反田ビル 6階セミナールーム 住所 東京都品川区西五反田1-21-8 KSS五反田ビル6階 申し込みはこちら! Perl入学式 in大阪 第1回 2018年5月12日(土) 時間 13:00 - 17:30 定員 20人 (現在9名参加, 0名補欠) 会場 ニュー共栄ビル 地下会議室 住所 大阪大阪市北区芝田2丁目

    2018年のPerl入学式の紹介 - Perl入門ゼミ
  • スカラ変数のリファレンス - Perl入門ゼミ

    Perl › リファレンス › here スカラ変数のリファレンスは、スカラ変数を指し示すものです。 スカラ変数のリファレンスの作成 スカラ変数のリファレンスを作成するには次のようにします。 my $str = "Hello"; my $str_ref = \$str; スカラ変数のリファレンスをデリファレンス スカラ変数のリファレンスをデリファレンスするには「${}」とします。 my $str = ${$str_ref}; 単純な変数であれば先頭に「$」を付けるだけでデリファレンスできます。 my $str = $$str_ref; スカラ変数のリファレンスを使う意義はありますか? 大きなサイズの文字列をサブルーチンに渡す場合は、リファレンスを使ったほうが、速い気がしますね。 でも、Perlでは、文字列はコピーオンライトと呼ばれる手法を使ってコピーされるので、実際に文字列に変更が加えられ

    スカラ変数のリファレンス - Perl入門ゼミ
  • デリファレンス - Perl入門ゼミ

    Perl › 演算子 › here デリファレンスとはリファレンスを作成するのと反対の操作で、リファレンスから実体を取り出すことができます。 配列のリファレンスをデリファレンス 配列のリファレンスをデリファレンスするには「@{}」を使用します。 my @array = @{$array_ref}; 新しい配列が作られるわけではなく、実体が取り出されているということを意識してください。 「@{}」の内側が単純な変数の場合は「{}」を省略することができます。 my @array = @$array_ref; 配列のリファレンスをデリファレンスするサンプルプログラムです。 # 配列のリファレンス my $nums_ref = [1, 2, 3]; # デリファレンス my @nums = @$nums_ref; Perlの配列操作を行う標準関数は、配列のリファレンスではなく、配列を渡す必要があり

    デリファレンス - Perl入門ゼミ
  • 変数展開 - Perl入門ゼミ

    Perl › 構文・文法 › here Perlには文字列の中で変数を利用することができる変数展開という機能があります。文字列はダブルクォートで囲う必要があります。 my $str2 = "AAA $str1 CCC"; 文字列の中で直接変数を利用することができるので、文字列連結演算子を使って書くよりも簡単です。積極的に使っていきましょう。 変数展開のサンプルを書いてみます。 my $animal = 'cat'; my $message = "I like $animal"; 「$animal」が変数展開されて「$message」は「I like cat」になります。 変数展開の後ろに文字列が続く場合 変数展開をするときに、変数の後ろに文字列が続く場合に、その文字列も変数名の一部だと認識されてしまいます。このような場合は$の後ろで「{}」を使って、変数名を囲みましょう。 my $anim

    変数展開 - Perl入門ゼミ
  • 繰り返し演算子「x」 - Perl入門ゼミ

    Perl › 演算子 › here 繰り返し演算子「x」を使用すると、文字列あるいは配列を繰り返し回数だけ、連結することができます。 # 文字列を繰り返し連結 my $str2 = $str1 x 3; # 配列を繰り返し連結 my @array2 = @array1 x 3; 文字列を繰り返し連結するサンプルプログラムです。 my $str = 'abc' x 3; $strは「abcabcabc」になります。 配列を繰り返し連結するサンプルです。 my @nums = (1, 2, 3) x 3; @numsは(1, 2, 3, 1, 2, 3, 1, 2, 3)になります。 Perl › 演算子 › here

    繰り返し演算子「x」 - Perl入門ゼミ
  • デクリメント演算子「--」 - Perl入門ゼミ

    Perl › 演算子 › 算術演算子 › here デクリメント演算子を使用すると、変数に代入されている数値から1を減算することができます。デクリメント演算子は、変数の前か後につけることができます。 # デクリメント(後置) $num--; # デクリメント(前置) --$num; デクリメント演算子は減算演算子を使った次の記述と同じ意味になります。 $num = $num - 1; デクリメント演算子はfor文の中で時々利用されます。 for (my $i = 10; $i >= 0; $i--) { print "$i\n"; } このサンプルプログラムでは、10から0が出力されます。 前置のデクリメントと後置のデクリメントの違い 前置のデクリメントと後置のデクリメントは単独で利用される場合は、意味が同じですが、代入されるなど戻り値が利用される場合は、意味が異なります。 前置のデクリメ

    デクリメント演算子「--」 - Perl入門ゼミ
  • インクリメント演算子「++」 - Perl入門ゼミ

    Perl › 演算子 › 算術演算子 › here インクリメント演算子を使用すると、変数に代入されている数値に1を加算することができます。インクリメント演算子は、変数の前か後につけることができます。 # インクリメント(後置) $num++; # インクリメント(前置) ++$num; インクリメント演算子は加算演算子を使った次の記述と同じ意味になります。 $num = $num + 1; インクリメント演算子はfor文の中で頻繁に利用されます。 for (my $i = 0; $i < 10; $i++) { print "$i\n"; } このサンプルプログラムでは、0から10が出力されます。 前置のインクリメントと後置のインクリメントの違い 前置のインクリメントと後置のインクリメントは単独で利用される場合は、意味が同じですが、代入されるなど戻り値が利用される場合は、意味が異なります

    インクリメント演算子「++」 - Perl入門ゼミ
  • 剰余演算子「%」 - 余りを求める - Perl入門ゼミ

    Perl › 演算子 › 算術演算子 › here 剰余演算子「%」を使用すると、数値の余りを求めることができます。 my $num3 = $num1 % $num2; 11を3で割った余りを求めるサンプルです。 my $num = 11 % 3; 余りは2になります。 算術演算子の解説 剰余演算子は、算術演算子の一つです。算術演算子の詳しい解説については、算術演算子の解説のページをご覧ください。 算術演算子 Perl › 演算子 › 算術演算子 › here

    剰余演算子「%」 - 余りを求める - Perl入門ゼミ
  • 乗算演算子「*」 - 数値の掛け算 - Perl入門ゼミ

    Perl › 演算子 › 算術演算子 › here 乗算演算子「*」を使用すると、数値の掛け算を行うことができます。 my $num3 = $num1 * $num2; 3と5を掛け算するサンプルです。 my $num = 3 * 5; Perlでは、少数の掛け算も型を意識しないで行うことができます。 my $num = 3.5 * 2.7; 算術演算子の解説 乗算演算子は、算術演算子の一つです。算術演算子の詳しい解説については、算術演算子の解説のページをご覧ください。 算術演算子 Perl › 演算子 › 算術演算子 › here

    乗算演算子「*」 - 数値の掛け算 - Perl入門ゼミ
  • 減算演算子「-」 - 数値の引き算 - Perl入門ゼミ

    Perl › 演算子 › 算術演算子 › here 減算演算子「-」を使用すると、数値の引き算を行うことができます。 my $num3 = $num1 - $num2; 3から5を引き算するサンプルです。 my $total = 3 - 5; Perlでは、少数の引き算も型を意識しないで行うことができます。 my $total = 3.5 - 2.7; 算術演算子の解説 減算演算子は、算術演算子の一つです。算術演算子の詳しい解説については、算術演算子の解説のページをご覧ください。 算術演算子 Perl › 演算子 › 算術演算子 › here

    減算演算子「-」 - 数値の引き算 - Perl入門ゼミ
  • 加算演算子「+」 - 数値の足し算 - Perl入門ゼミ

    Perl › 演算子 › 算術演算子 › here 加算演算子「+」を使用すると、数値の足し算を行うことができます。 my $num3 = $num1 + $num2; 3と5を足し算するサンプルです。 my $total = 3 + 5; Perlでは、少数の足し算も型を意識しないで行うことができます。 my $total = 3.5 + 2.7; 数値型の自動拡張 Perlは、プログラミング言語上は、数値型を持っていませんが、内部では、数値型を持っています。 32ビット整数で計算できない場合は、環境がサポートしていれば、64bit整数に拡張され計算されます。 また、64bit整数でも表現できない場合は、倍精度浮動小数点型に拡張され計算されます。 文字列連結は文字列連結演算子で行う Perlでは「+」という演算子は、数値を加算するためだけに使用します。文字列を連結したい場合は文字列連結演

    加算演算子「+」 - 数値の足し算 - Perl入門ゼミ
  • 配列のリファレンス - Perl入門ゼミ

    Perl › リファレンス › here Perlには配列のリファレンスというデータ構造が頻繁に登場します。このページでは、リファレンスの中から配列のリファレンスを詳しく取り上げます。 配列のリファレンスとは 配列のリファレンスとは、配列に対するリファレンスのことです。リファレンスというのは、指すということを表します。配列に対して、リファレンス生成子「\」を使用すると、配列のリファレンスを作成することができます。 # 配列のリファレンスを作成 my @nums = (1, 3, 5); my $nums_ref = \@nums; 配列のリファレンスは、スカラ変数に代入されるとういうことに注意してください。 配列のリファレンスのイメージを以下に書いてみます。 # イメージ @nums $nums_ref -------> (1, 3, 5)配列のリファレンスは、配列そのものではなく「配列を

    配列のリファレンス - Perl入門ゼミ