ブログトップ 記事一覧 ログイン 無料ブログ開設

サンプルコードによるPerl入門 〜 安定と信頼のPerlを学ぼう 〜

「サーバ/インフラエンジニア養成読本 基礎スキル編」
2015年4月30日に発売されました! ぜひ書店でお手にとりください。

3000-01-01

サンプルコードによるPerl入門 - 目次

 サンプルコードを中心としたPerlの入門サイトです。 Perlを使ったWebサイトの作り方も解説しています。関数やモジュールなPerlの便利な機能の解説も行っています。

「サイトの表示が、はてなデフォルトのスマートフォン、タブレット表示」の場合は「レスポンシブルなサイト表示」をこちらから行うことができます

Perl基礎

 Perlの基礎について解説します。Perlのインストール、基本的な構文、配列、ハッシュ、正規表現、ファイル入出力、オブジェクト指向などを学ぶことができます。

Perl
基礎

Perl基礎 - Perlの基礎を覚えよう

Mojolicious入門

 Perlを学ぶ楽しい方法のひとつはWebサイトを作成してみることです。MojoliciousはPerlでWebサイトを作る場合の代表的なフレームワークです。Mojoliciousを使えば、簡単にWebサイトを作成することができます。

Mojolicious
入門

Mojolicious入門 - PerlでWebサイトを作ろう

Mojoliciousリファレンス

 Mojolicious入門で紹介できなかったさまざまなテクニックを紹介します。

Mojolicious
リファレンス

Mojoliciousリファレンス - Mojoliciousのリファレンス

Perl書籍

 Perl関連の書籍の紹介です。「サンプルコードによるPerl入門基礎編」「簡単プログラミング Perl/CGI」と「もっと自在にサーバを使い倒す 業務に役立つPerl」は僕が書いています。

Perl
書籍

Perl書籍 - Perl関連の書籍情報

よく使用する関数一覧

 よく使用する関数の一覧です。これを見れば、実用で利用するPerlの標準関数をひととおり覚えることができます。

よく使用する
関数一覧

よく使用する関数一覧 - よく使用する関数の紹介

Perlモジュール徹底解説

 モジュールはPerlに機能を追加する仕組みです。Perlの標準モジュールを中心にして、利用頻度の高いモジュールについて、詳しく解説しています。

モジュール
徹底解説

Perlモジュール徹底解説 - モジュールについての詳しい解説

Perl逆引き辞典

 Perlの逆引き辞典です。やりたいことをさがせます。簡単なサンプルつきです。

Perl
逆引き辞典

Perl逆引き辞典 - Perlの逆引き辞典

コーディングルール

 サンプルコードによるPerl入門でPerlのソースコードを書くときに利用しているコーディングルールです。参考にしてください。

コーディング
ルール

サンプルコードによるPerl入門のコーディングルール

データベース基礎

 簡易なデータベースシステムであるSQLiteとPerlのデータベースにアクセスするためのモジュールDBIを使って、データベースについて学びます。

データベース
基礎

SQLiteで学ぶデータベース操作の基礎

XSによるC/C++バインディング入門

 XSはC/C++の関数をPerlの関数にマッピングする仕組みです。C/C++で書かれた関数をPerlから呼び出す方法について解説します。

Perl XS
入門

XSによるC/C++バインディング入門

Perl応用

 Perlの応用的な話題について解説しています。

  1. Validator::Customリファレンス - HTMLフォームのバリデーション
  2. DBIx::Customリファレンス - データベースに便利にアクセス
  3. PDLによる統計解析 - PDLモジュールを使った統計解析
  4. PerlプログラマのためのC言語入門 - PerlプログラマのためのC言語の解説です
  5. Perlその他の情報

Perlリファレンス

 Perlのリファレンスです。

Perlその他

 Perlのその他の情報です。

CentOS・Red Hat Linux実践テクニック

 CentOSで利用できるテクニックを紹介しています。

Perl以外の技術情報

 Perl以外の技術情報です。

2015-05-04

Perlラジオトーク 2015年5月4日(月)

 今週のPerlラジオトークです。

Perlラジオトーク 2015年5月4日(月)

サーバー/インフラエンジニア養成読本発売報告

  • サーバー/インフラエンジニア養成読本発売報告
  • 4月30日に発売しました。

内容紹介と

  • サーバーサイドエンジニアは、覚えることがたくさんだ
  • まとめて覚えられるとうれしい
  • OS編
  • Virtual Boxの使い方とCentOSのインストール
  • シェルスクリプトのコマンド
  • viエディタを使ったときの困った思い出
  • viの基本コマンド、編集コマンドなど
  • Perl

2015-04-27

Perlラジオトーク 2015年4月27日(月)

 今週のPerlラジオトークです。

Perlラジオトーク 2015年4月27日(月)

今週の作業

  • Mojoliciousをさくらレンタルサーバー・スタンダードで動かす手順の作成
  • ドキュメント作成の心がけ
  • 間を抜かないようにする
  • 大学の教科書が難しい理由

質問コーナー - ワンライナーについてどう思いますか

  • 初級者向けの内容
  • ワンライナーとは、一行で実行するコマンド
  • ワンライナーは賛否両論
  • 特殊なオプションなどがあり、読みづらくなる
  • ワンライナーは、awk,sedでは複雑すぎるテキスト処理を代替する
  • コマンドとスクリプトの中間に位置している
  • 実際の現場でワンライナーを使った経験

2015-04-25

さくらのレンタルサーバー・スタンダードでアプリを公開する | Mojolicious入門

 Hello Worldアプリケーションを作成し、自分のマシンの上で、実行して、ブラウザで表示させました。けれども、最終的には、インターネットを使って、他の人に、作成したアプリを見せたいと思うようになると思います。

 インターネットでWebサイトを公開するための手順は、いくつかありますが、今回はもっとも簡単な方法として、さくらのレンタルサーバー・スタンダードを利用したいと思います。

 さくらのレンタルサーバー・スタンダードは、インターネットで、Webサイトを公開するためのサービスです。共有レンタルサーバーと呼ばれ、CGIを使って作成されたファイルを、実行して、表示することができます。

 Hello Worldアプリケーションは、実は、CGIとしても、実効することが可能です。ですので、自分のマシンで作成したアプリケーションを、さくらのレンタルサーバー・スタンダードを使って公開することができます。

さくらレンタルサーバー・スタンダードの申し込み

 さくらのレンタルサーバー・スタンダードは、こちらのページから申し込むことができます。1ヶ月500円程度で利用でき、ディスク容量も100GBと、かなり大きいので、お得です。また、この後解説しますが、SSHを使って、サーバー上で、コマンドを実行することができます。

さくらのレンタルサーバー スタンダードの申し込み

 こちらのサイトでの解説手順に従って、進めていってください。

SSHを使って、サーバーに接続する

 さくらのレンタルサーバー・スタンダードが利用できるようになったら、さっそく手順を進めていきましょう。まず最初に、SSHを使って、サーバーに接続するということをやってみたいと思います。

 SSHというのは、セキュアな通信で、サーバーに対してコマンドを実行するためのプロトコルです。この後の作業で、異なるバージョンのPerlに変更したり、CGIのパーミッションを変更したりするときに、コマンドというものを実効する必要があります。

 そのために、SSHを使って、サーバーに接続する必要があります。Mac OS Xをお持ちの方であれば、sshコマンドは、すでに用意されています。ターミナルを開けば、sshコマンドを利用することができるので、準備は要りません。

 Windowsの場合は、SSHクライアントであるTeratermと呼ばれるアプリケーションをインストールしましょう。Teratermを使えば、SSHを使って、サーバーで、コマンドを実行することができます。

WindowsでのTera Termのインストール

 以下のサイトからTera Termをダウンロードしてインストールします。

Tera Term

 インストールが完了したら、Tera Termを起動します。「New Connection」というウインドウが表示されると思います。

 Hostの部分には、さくらスタンダードを申し込んだときに、受け取ったホスト名を入力します。

xxxxx.sakura.ne.jp

 xxxxxのところにはユーザー名が入ります。

「Service」の部分はSSHを指定します。

SSH

 「OK」ボタンを押すと、SSH Authenticationというウインドウが開きます。

「User name」と「Passphrase」の部分にさくらスタンダードで受け取った、ユーザー名とパスワードを入力します。

 「OK」をクリックすると、サーバーに接続することができます。

Mac OS Xでのサーバーへの接続

 Mac OS Xには、デフォルトでsshコマンドが利用できますので、ターミナルを開いてSSHコマンドを実行します。

ssh yyy@xxx.sakura.ne.jp

 xxxの部分には、ユーザー名を入力してください。xxxの部分が、与えられたホスト名の該当する部分を入力してください。

 パスワードを聞かれますので、さくらスタンダードを申し込んだときにもらったパスワードを入力してください。

 サーバーに接続することができます。

利用するPerlのバージョンを変更する

 Mojoliciousを利用するには、5.10.1以上のPerlが必要です。さくらのスタンダードでは、Perlのバージョンを簡単に切り替えることができます。

 SSHでは、コマンドというものを使ってさまざまな操作を行います。まず、Perlのバージョンが指定されたファイルを表示してみましょう。以下のコマンドを入力して、Enterを押すとコマンドを実行できます。

cat .perl.version

 catの後ろには空白があるので注意しましょう。コマンドを実行するときはいつでもEnterを押すので、覚えておいてください。

 次に、さくらのスタンダードでは2015年現在Perl 5.14が利用できるので、この設定を書き換えます。

echo "5.14" > .perl.version

 もとに戻したい場合は次のコマンドで元に戻せます。

echo "5.8" > .perl.version

 次のコマンドでPerlのバージョンを確認してみましょう。

perl -v

 以下のように、Perl 5.14が表示されれば、成功です。

This is perl 5, version 20, subversion 1 (v5.20.1) built for amd64-freebsd

Mojoliciousをインストールする

 Mojoliciousをインストールするには、cpanmというPerlのモジュールをインストールするツールを利用するのが簡単です。cpanmをダウンロードして、Mojoliciousをインストールしましょう。

cpanmのダウンロード

 まず最初にcurlというコマンドを使ってcpanmをダウンロードします。

curl -LOk http://xrl.us/cpanm

 ファイル一覧を表示するコマンドを使ってcpanmがダウンロードされているかどうか確認しましょう。

ls

 cpanmというファイルが表示されているか確認しましょう。

Mojoliciousのインストール

 次にcpanmを使ってMojoliciousをインストールしましょう。

perl cpanm Mojolicious

 次のような画面が表示されます。

--> Working on Mojolicious
Fetching http://www.cpan.org/authors/id/S/SR/SRI/Mojolicious-6.08.tar.gz ... OK
Configuring Mojolicious-6.08 ... OK
Building and testing Mojolicious-6.08 ... OK
Successfully installed Mojolicious-6.08
1 distribution installed

 Mojoliciousがインストールされていることを確認してみましょう。perldocというコマンドは、Perlのドキュメントを見るコマンドですが、Mojoliciousがインストールされていれば、ドキュメントを見ることができます。

perldoc Mojolicious

 Mojoliciousがインストールされていれば、ドキュメントが表示されます。ドキュメントの表示を終えるときは「q」を押します。

q

Mojoliciousアプリケーションの修正

 さくらのスタンダードで動かすためには、先ほど作成した「webapp.pl」スクリプトを少し修正する必要があります。


シェバングの追加

 以下が先ほど作成したスクリプトです。

use Mojolicious::Lite;

get '/' => sub {
  my $self = shift;

  $self->render(text => 'Hello World');
};

app->start;

 このスクリプトの先頭に次の一行を追加してください。これは、シェバングと呼ばれ、CGIをPerlを使って実行するための指示になります。

#!/usr/bin/env perl

 また、Mojoliciousをインストールしたディレクトリを、ライブラリのパスとして読み込むために、次の2行を追加します。

use FindBin;
use lib "$FindBin::Bin/../perl5/lib/perl5";

 スクリプトは次のようになります。

#!/usr/bin/env perl
use FindBin;
use lib "$FindBin::Bin/../perl5/lib/perl5";

use Mojolicious::Lite;

get '/' => sub {
  my $self = shift;

  $self->render(text => 'Hello World');
};

app->start;

 なお、自分の環境で開発をするときも、このままおいておいても大丈夫です。

ファイル名の変更

 さくらのスタンダードで実効するときは、ファイル名の拡張子を「.cgi」にする必要があります。

「webapp.pl」を「webapp.cgi」に変更してください。

Mojoliciousアプリケーションのアップロード

 Mojoliciousのインストールが終われば、次は、作成したHello Worldアプリケーションのアップロードを行います。

 Windowsの場合は、Windowsの場合は、Windows7以降であれば、FTPソフトは、エクスプローラに統合されているので、これを利用します。もし、Windows7より前の場合は、FFFTPというソフトを利用すれば、ファイルをアップロードすることができます。

 Mac OS Xの場合も、FTPソフトは、デフォルトでインストールされているので、これを利用します。

Windowsの場合(Windows7以降の場合を解説)

 エクスプローラから、FTPを使って、サーバーに接続しましょう。なんでもよいので、フォルダをダブルクリックして、エクスプローラを立ち上げてください。

 上にあるアドレスバーの空白部分をクリックすると、自分でURLを入力することができます。ここに次のように、入力してください。

ftp:yyy@xxx.sakura.ne.jp

 yyy@xxx.sakura.ne.jpはSSHの接続のときに利用したものと同じものです

 すると、サーバーにFTPで接続することができます。ユーザー名とパスワードを聞かれますので、入力してください。

 接続するとwwwというフォルダがあると思います。このフォルダの中にインターネットで、公開するファイルを配置します。

 Hello Worldアプリケーションを、「webapp.cgi」という名前で保存したと思いますが、これをwwwフォルダの中に保存してください。

 これで、ファイルのアップロードは終了です。

Mac OS Xの場合

 Finderは、ファイルを見るためのものですが、これを使って、サーバーへFTP接続をすることができます。

 Finderを使って、FTP接続するには、「Finderのメニューの移動(Go)>サーバへ接続(Connect to Server)を選択。」します。

 次に、接続したいサーバーを次のように入力してください。

ftp:yyy@xxx.sakura.ne.jp

 yyy@xxx.sakura.ne.jpはSSHの接続のときに利用したものと同じものです

 すると、サーバーにFTPで接続することができます。ユーザー名とパスワードを聞かれますので、入力してください。

 接続するとwwwというフォルダがあると思います。このフォルダの中にインターネットで、公開するファイルを配置します。

 Hello Worldアプリケーションを、「webapp.cgi」という名前で保存したと思いますが、これをwwwフォルダの中に保存してください。

 これで、ファイルのアップロードは終了です。

アプリケーションを実効するための準備

 アプリケーションを実効するためには、いくつかの準備が必要です。

ファイルのパーミッションを755にする

 CGIファイルを実行するためには、CGIファイルのパーミッションというものを、755にする必要があります。ここでは、おまじないとして覚えておいてください。

 まず、先ほど解説した手順でSSHを使って、サーバーに接続してください。Windowsの場合は、Tera Termを、Mac OS Xの場合はターミナルからsshコマンドを利用するのでしたね。

 そして、まず、webapp.cgiの存在するディレクトリに移動します。ディレクトリを移動するには、「cd」コマンドを使用します。

cd ~/www

 「~」というのは、自分のホームディレクトリを表す記号です。ホームディレクトリの中の「www」フォルダに移動します。

 次に、「webapp.cgi」のファイルのパーミッションを「755」に変更します。

chmod 755 webapp.cgi
Windowsの場合は、改行コードを「LF」にする

 Windowsの場合は、デフォルトでは、改行コードというものが「CR + LF」というものになっています。さくらのスタンダードで動かすために、改行コードを「LF」に変換する必要があります。

 次のコマンドで改行コードを、「LF」に統一します。

perl  -i.org  -pe  's/\r\n/\n/g' webapp.cgi

 これを毎回やるのは面倒ですね。秀丸やさくらエディタなどの、Windowsのテキスト編集ソフトを利用すれば、あらかじめ、「LF」に統一しておけるので便利です。

Perlのスクリプトが正しいかを確認する

 Perlのスクリプトが間違っていた場合は、CGIの実効が失敗しますので、CGIが正しいかどうかを確認します。

perl -c webapp.cgi

 「perl -c」というコマンドを使うと、Perlのスクリプトの文法が正しいことが確認できます。以下のように表示されれば、Perlのスクリプトは正しく記述できています。

webapp.cgi syntax OK

Mojoliciousアプリケーションにアクセスする

 さっそく、Mojoliciousアプリケーションにアクセスしてみましょう。ブラウザから、URLを入力してみてください。

http://xxx.sakura.ne.jp/webapp.cgi

 「Hello World」と表示されれば成功です。これで、インタネット上での公開が完了し、すべての人から、あなたの作成したMojoliciousアプリケーションを見ることができます。おめでとう!


Mojolicious入門

2015-04-21

素養としてのPerlを学ぶ

 PerlはUnix生まれの言語です。gitやmysqlなどのコマンドラインで実行されるツールの、ヘルパースクリプトとしてもPerlが利用されているのは、ご存知ですか。

 Perlは隠れた力持ちです。Perlは、互換性が非常に高く、手軽に扱えるスクリプト言語ですので、他の開発されたツールの手助けをするツールとして、利用されています。互換性が高いということは、どの環境でも、問題なく動くということです。

 他のツールと連携して動かすスクリプト言語の用途としてPerlはぴったりなのです。

縁の下の力持ち

 Perlは、目立たないですが、縁の下の力持ちとしても、活躍しています。Perlは、ライトユーザーが非常に多い言語です。

 あるアンケートによれば、システム開発にかかわる80%近くの企業が、何らかの形で、Perlに接しているらしいです。

 Perlは、LinuxやUnixなどのたいていの環境にインストールされているので、Perlを覚えておけば、自分で環境を構築できない制約のある現場で、作業をすることになったとしても、そこに、Perlがあれば、ちょこちょこと、スクリプトを書くことができます。

 仕事の環境は、自分が自由自在にいじることができるとは限りません。プロジェクトには、政治的なものや、技術的なものを含めていろいろな制約があることが多いです。

 自由にインストールができない環境でも、システム内のどこかでPerlの存在を発見すれば、作業のかなりの部分を楽にすることができます。

素養としてPerlを学んでおく

 素養として、Perlを学んでおいて、損はありません。Perlは、広く薄く利用されているので、どこかでPerlを見つける可能性は高いですし、そんなときにPerlができれば、作業を自動化して、楽をすることができます。

 Perlは便利な言語です。ちょこちょこと、テキストを編集するときに、覚えておけば、自由自在に、編集して、抜き出したり、集計することができます。

 大掛かりなツールは、便利なものですが、増やせば増やすほど、管理コストが増えていきます。Perlであれば、ちょこちょこと、小回りがきき、カスタマイズ性が高く、与えられた課題を、簡潔に解くこともできます。

 学校などで、Perlを学ぶときに、積極的なイメージを持っていただけたら幸いです。