Perl入門ゼミ - Perlを0から学べる無料テキスト

Perlプログラミングを学びたい人向けのPerl入門講座です。Perlはテキスト処理に最適化されたプログラミング言語です。Linuxシステム管理、Web開発という分野でも大活躍。後方互換性、ライブラリの安定性、数多くのOSサポートに定評があります。 Perl入門 Per…

「サンプルコードPerl入門」は「Perl入門ゼミ」に名称を変更しました

「サンプルコードPerl入門」は「Perl入門ゼミ」に名称を変更します。去年お伝えしておいた通り2019年1月より名称変更になりました。もともとは、Perlのサンプルがたくさんあれば、コピペして、そのまま使えるから便利だなという目的で始めたサイトでした。問…

Mojoliciousのホームディレクトリを変更する

Perl › Mojolicious Mojoliciousのホームディレクトリを変更するには「MOJO_HOME」環境変数を使用します。 BEGIN { $ENV{MOJO_HOME} = '/foo/bar'; } use Mojolicious::Lite; Mojolicious::Liteを読み込む前に設定しましょう。あるいは、あらかじめ環境変数…

Perlのインストール方法 - Windws、macOS、Linux対応

Perl › here Perlのインストール方法を解説します。Windws、macOS、LinuxでそれぞれPerlのインストール方法を紹介します。 WindowsにおけるPerlのインストール macOSにおけるPerlのインストール Unix/LinuxにおけるPerlのインストール WindowsにおけるPerlの…

plenv - ユーザー環境にPerlをインストールする

Perl › モジュール › here plenvというツールを利用すると、ユーザー環境にPerlをインストールすることができます。システム標準のPerlを利用したくない場合や新しいバージョンのPerlを利用したい場合は便利です。またplenvを使うと複数のバージョンのPerlの…

macOSへのPerlのインストール

Perl › インストール macOSの環境には、すでにPerlがインストールされています。以下のコマンドでPerlがインストールされているか確認してみましょう。 perl -v バージョン情報が表示されれば、OKです。さっそく、Perlを使い始めてみましょう。 ユーザー環境…

Unix/LinuxへのPerlのインストール

Perl › インストール Unix/Linux環境には、すでにPerlがインストールされてることが多いです。以下のコマンドでPerlがインストールされているか確認してみましょう。 perl -v 存在する場合はすぐにPerlを使い始めることができます。ない場合は、Unix/Linuxデ…

Strawberry PerlをWindowsにインストールする

Perl › インストール Strawberry Perl(ストロベリーパール)はWindowsでPerlを利用するために作成されたPerlのディストリビューションのひとつです。Strawberry Perl for WindowsStrawberry Perlの良いところは、 Unix/Linux環境のPerlと近い感覚で使うことが…

msys2をWindowsにインストールしてPerlを使う

Perl › インストール msys2をWindowsにインストールしてPerlを使う方法を解説します。msys2(エムシスツー)は、Windows上でLinux風のシェル環境を提供するツールです。PerlはUnix生まれですので、Unix/Linux風の環境で開発をしたいという要望があります。msys…

雅なPerl入門 - 雅ちゃんが大学生クロウにPerlを学ぶ物語

雅(みやび)なPerl入門は、雅ちゃんが大学生クロウにPerlを学ぶ物語形式で、Perlを学べる入門書。 「Perlを教えてくださいっ!」 ある日突然、twitterのダイレクトメッセージにメッセージが飛び込んできた。それは女の子からのものだった。どうせまたスパムだ…

Perl 5.28リリース - Unicode 10.0サポート、文字列連結の高速化、ref関数、keys関数、forループの高速化

Perl 5.28が2018年6月22日にリリースされました。Perl 5.28でうれしい機能をピックアップして紹介。 Unicode 10.0サポート Unicode 10.0がサポートされました。56種類の新しい絵文字が使えるようです。 文字列連結の高速化 複数の文字列連結が、高速化されま…

read関数 - ファイルからバイト数を指定して読み込み

Perl › 関数 › here read関数を使用すると、ファイルからバイト数を指定して読み込むことができます。 read $fh, $buffer, $byte_size; 第一引数は、ファイルハンドル、第二引数は、読み込んだデータを格納するスカラ変数、第三引数は、バイトサイズを指定し…

sysread関数 - ファイルからバイト数を指定して読み込み(バッファリングなし)

Perl › 関数 › here sysread関数を使用すると、ファイルからバイト数を指定して読み込むことができます。 sysread $fh, $buffer, $byte_size; 第一引数は、ファイルハンドル、第二引数は、読み込んだデータを格納するスカラ変数、第三引数は、バイトサイズを…

syswrite関数 - ファイルにバイト数を指定して書き込み(バッファリングなし)

Perl › 関数 › here syswrite関数を使用すると、ファイルにバイト数を指定して書き込むことができます。 syswrite $fh, $buffer, $byte_size; 第一引数は、ファイルハンドル、第二引数は、書き込むデータであるスカラ変数、第三引数は、バイトサイズを指定し…

scalar関数 - スカラコンテキストで評価

Perl › 関数 › here scalar関数を使用すると、スカラコンテキストを強制することができます。 # スカラコンテキストで評価 scalar 実行文 たとえば配列をスカラコンテキストで評価すると配列の個数が取り出せますが、scalar関数を使って明示的に書くと以下の…

配列の要素数を取得する

Perl › 配列 › here 配列の要素数を取得するには、配列をスカラコンテキストで評価します。 my $length = @nums; 配列の要素数というのは、配列の長さ、配列の要素の個数とも呼ばれます。Perlにおいては、長さを取得する関数のようなものはなく、配列をスカ…

スカラコンテキスト

Perl › 構文 › コンテキスト › here Perlにはコンテキストと呼ばれる概念があり、スカラとして評価される文脈をスカラコンテキストといいます。 スカラ変数への代入 スカラ変数への代入はスカラコンテキストです。配列はスカラコンテキストで評価すると、配…

リストコンテキスト

Perl › 構文 › コンテキスト › here Perlにはコンテキストと呼ばれる概念があり、リストとして評価される文脈をリストコンテキストといいます。 配列への代入 配列への代入はリストコンテキストです。 my @values2 = @values; リスト リストの内側はリストコ…

読み込まれているモジュールを調べる %INC

Perl › 特殊変数 › here 読み込まれているモジュールを調べるには%INCという特殊変数を使います。 %INC %INC ハッシュは、モジュール名とモジュールのファイル名の組み合わせが、代入されています。モジュール名と、実際にどのファイルをインポートしたのか…

Perlのイベント情報

Perlのイベント情報は、Twitterのモーメントに移行しました。Perlのイベント情報 - Twitterモーメント2018年 8月25日(土) Perl入学式 in 沖縄 第4回 〜サブルーチン/正規表現編〜 9月8日(土) Perl入学式 in大阪 第3回 〜配列/ハッシュ編〜 9月14日(金) 六本…

OS名を取得する $^O

Perl › 特殊変数 › here OS名を取得するには$^Oという特殊変数を使用します。 $^O $^O の値とOSの種類 各OSにおける「$^O」の値をまとめました。 $^Oの値 説明とリンク MacOS MacOS MSWin32 Windows 全般 os2 OS/2 VMS VMS epoc EPOC OS (たぶん) NetWare Ne…

プロセスの開始時刻を取得する $^T

Perl › 特殊変数 › here プロセスの開始時刻を取得するには特殊変数「$^T」を使用します。 $^T時刻は、エポック秒(1970年1月1日0時0分0秒からの秒数) で取得されます。

子プロセスの終了ステータス $?

Perl › 特殊変数 › here 子プロセスの終了ステータスを取得するには特殊変数「$?」を使用します。waitで子プロセスの終了を待った]場合は、$?に子プロセスの終了ステータスを含めた複数の値が格納されます。またsystem関数を使って子プロセスを実行した場合…

正規表現のキャプチャ $1, $2, $3, ...

Perl › 特殊変数 › here 「$1」「$2」「$3」には、正規表現でキャプチャされた文字列が順番に代入されます。 $1 $2 $3 この後は「$4」「$5」と続いていきます。

サブルーチンの引数 @_

Perl › 特殊変数 › here 「@_」には、サブルーチンの引数が代入されてきます。 @_ サブルーチンで引数を受け取るには一般的に以下のように記述します。 sub foo { # サブルーチンで引数を受け取る my ($arg1, $arg2, $arg3) = @_; }

ファイルの内容をすべて読み込む

Perlでファイルの内容を一括して読み込むには、どうすればよいでしょうか。慣例的に、次のような記述によって、ファイルの内容を一度に読み込むことが多いです。 my $file = 'a.txt'; open my $fh, '<', $file or die "Can't open $file: $!"; # ファイルの…

プロセスIDを取得する $$

Perl › 特殊変数 › here プロセスIDを取得するには特殊変数「$$」を使用します。 my $process_id = $$; プロセスIDとは、OSがプロセスを一意に識別するために、プロセス起動時に割り当てる識別子のことです。

処理にかかっている時間を調べる

バッチ処理のプログラムなどを作っているときに、処理の開始から処理の終了まで、どれくらいかかったのかということを知りたい場合などがよくあります。大きなzipファイルをダウンロードしたり、大量のデータをデータベースなどに挿入している場合は、どれく…

ファイルの存在を確認する

Perl › 演算子 › ファイルテスト › here ファイルが存在するかどうかを確認するには、ファイルテスト演算子「-e」を使用します。 -e $file ファイルが存在すると真値を、存在しないと偽値を返します。ディレクトリやシンボリックリンクなどもファイルとして…

ディレクトリの存在を確認する

Perl › 演算子 › ファイルテスト › here ディレクトリが存在するかどうかを確認するには、ファイルテスト演算子「-d」を使用します。 -d $file ディレクトリが存在すると真値を、存在しないと偽値を返します。ファイル演算子 -d を使ってディレクトリの存在…