3000-01-01
サンプルコードによるPerl入門 目次
サンプルコードを中心としたPerlの入門サイトです。応用的な話題もたくさん扱っているので、Perlを詳しく学びたい方にはおすすめのサイトです。
他の入門サイトは、Perl4の書き方をされていることが多いですが、サンプルコードによるPerl入門では、Perl5の記述を使っています。(KENT WEBのPerl入門、とほほのperl入門、WisdomSoftのPerl入門などの書き方はPerl4の書き方です)
筆者は木本裕紀(kimoto.yuki@gmail.com)といいます。サイトの更新情報はTwitterで発信しています。Twitterでのフォローもお願いします。
仕事や学校でPerlを使う初学者の方にサンプルコードによるPerl入門を教えてあげてほしいです。プログラミング系の入門サイトの紹介や無料でプログラミングを学べるサイト、Naverまとめなどでも、ぜひPerlのサイトとして紹介してほしいです。
気に入った記事がありましたらはてなブックマークもお願いします。ブックマークボタンとツイートボタンが各記事の右下についています。コメントやトラックバックも受け付けています。
Perl基礎
Perlの基礎について解説します。Perlのインストール、基本的な構文、配列、ハッシュ、正規表現、ファイル入出力、オブジェクト指向などを学ぶことができます。
- コマンドプロンプト- コマンドプロンプトの使い方
- Perlとは - Perlの特徴について
- Perlインストール - Perlのインストール方法
- Perl基礎文法最速マスター - Perlの基礎をすばやく学習
- 現代的なPerlの記述方法 - Perlの現代的な書き方
- 実践で役立つPerl正規表現 - Perlの正規表現で頻繁に利用するテクニック
- 配列とハッシュを自由に扱う - ハッシュと配列の扱い
- サブルーチンの作成 - サブルーチンの作成方法
- Perlのスコープを理解する - スコープという概念を学習
- ファイル入出力の基礎 - ファイルの読み書き
- Perlオブジェクト指向入門 - オブジェクト指向の入門
- デバッガの手引き - デバッガの紹介
- Perl豆知識 - 知っておくと便利な豆知識
- Perl FAQ - Perlでよくある質問に答える
Perl応用
基礎を学び終えたら、関数とモジュールについて知るのが、上達の近道です。またWebアプリケーションの作成にもチャレンジしてみましょう。逆引き辞典ではさまざまなことを調べることができます。
- よく使用する関数一覧 - よく使用する関数の紹介
- Perlモジュール徹底解説 - モジュールについての詳しい解説
- Webアプリケーション開発 - Webアプリケーションの開発手法の解説
- Validator::Customリファレンス - HTMLフォームのバリデーション
- SQLiteで学ぶデータベース操作の基礎 - SQLiteとDBIを使ったデータベース操作
- DBIx::Customリファレンス - データベースに便利にアクセス
- Perlその他の情報
書籍
Perlリファレンス
- Perl逆引き辞典 - 逆引き辞典です。やりたいことをさがせます。簡単なサンプルつきです。
- Perl標準関数リファレンス
- Perl言語リファレンス - Perl言語のリファレンスです。
Perlその他
- サンプルコードによるPerl入門の人気エントリー
- サンプルコードによるPerl入門のコーディングルール
- Perl公式ドキュメント一覧(日本語訳つき)
- Perlで作成されているWebサイト
- Perlの情報を発信しているブログ
- 技術ニュース
- Perlで作成されたアプリケーション
- Perl関連書籍
Perl以外の技術情報
- CentOSメモ - CentOSでの環境構築など
- Apacheメモ - Apacheの入門
- Gitメモ - Gitの入門
- bashメモ - bashの入門
- MySQLメモ - MySQLに関するメモ
- Perl以外の技術情報その他
読み物
Perlを中心としていろいろな話題について書いた読み物です。
著者
- 筆者紹介
- 筆者の作成したCPANモジュール
- もしかしたら役に立つかもしれないツールやモジュール
- Github - モジュールやアプリケーションの開発場所
- はてなブックマーク - Perl関連の技術情報収集
- Twitter - このサイトが気に入ったらフォローお願いします。更新情報を配信してます。
サイト紹介
2013-06-18
検索機能が強化されたMojolicious::Plugin::DBViewer 0.21をリリースしました
Mojolicious::Plugin::DBViewer 0.21をリリースしました。Mojolicious::Plugin::DBViewerはデータベースの情報をブラウザから見るためのMojoliciousのプラグインです。MySQLとSQLiteに対応しています。開発では頻繁にデータベースの情報を見る機会があります。そういうときは、コマンドラインからSQLを打つのではなくって、データベースを観覧できるツールを利用すると開発効率があがります。

CPAN
紹介ページ
機能追加
0.21では、大幅に検索機能が強化されています。いままでは検索条件がひとつでしたが、今回のアップデートでは複数検索をサポートしました。また次の機能が追加されていて、ますます便利になりました。
- 検索条件をみっつまで指定できるようになりました。この検索条件をandかorで結ぶことができます。
- 検索条件にinが利用できるようになりました。値は空白で区切って入力します。
- order by句が二つまで指定できるようになりました。
- join句を設定ファイルで定義できるようになり、joinを使った検索が可能になるjoinモードが追加されました。joinで結合された先のテーブルの列を検索条件として利用できます。
かなり便利になっているので、アップデートするとさらに便利に利用できると思います。互換性は保たれており、Mojolicious4.0にも対応していますので、過去バージョンから、そのままアップデートするだけで大丈夫だと思います。
近いうちにこれをプラグインではなくて完全にWebアプリ化したものを、別途リリースしたいと思っています。期待ください。
2013-06-13
GitPrep 1.0をリリースしました
Githubのクローン、ポータブルなGithubシステムをUnix/LinuxにインストールできるWebアプリケーショGitPrep 1.0をリリースしました。最初のメジャーリリースです。
自分のサーバーインストールできるので、ユーザーの作成は無制限、プライベートリポジトリも無制限に作成することができます。GitPrepはオープンソースですので、無料で利用することができます。さくらレンタルサーバーなどの共有レンタルサーバーにインストールすることができます。
アルファリリースの0.01のころから内部の構造は変わっていませんので、設定ファイル以外のファイルをアップロードするだけでアップデートできます。細かな表示のバグがたくさん修正されていますので、アップデートをお勧めします。

サンプル
動いているサンプルはこちらです。さくらのレンタルサーバーのスタンダードで動かしています。こちらでアプリケーションを試すことができます。
ダウンロード
ドキュメント
2013-06-12
ユニコード文字をコードポイントで表現する / Perl逆引き辞典
ユニコード文字には、すべての文字にコードポイントが割り当てられています。Perlでは、ユニコード文字をコードポイントを使って表現することができます。
# あ my $str = "\x{3042}";
コードポイントで表現されたユニコード文字を含む文字列は、utf8プラグマのあるなしにかかわらず、常に内部文字列として扱われるので注意してください。つまりすでにデコードされた状態だということですね。出力するには以下のようにエンコードします。
use Encode 'encode'; print encode('UTF-8', $str);
windowsの場合はcp932を文字コードとして指定してみてください。
2013-06-11
2013-06-10
ある文字のユニコードのコードポイントを調べる方法 / Perl逆引き辞典
ある文字のユニコードのコードポイントを知りたい場合は、次のようにします。utf8プラグマは有効にして、ソースコードをUTF-8で保存する必要があります。
use utf8; my $str = 'あ'; # 十六進数として表示 printf "%x\n", ord($str);
ord関数で文字のコードポイントを知ることができます。printf関数で%xというフォーマット指定をして16進数で表示しています。
出力結果は以下のようになり「あ」という文字のコードポイントは3042であることがわかります。
3042
Data::Dumperで簡易的に調べる
Data::Dumperモジュールを使って簡易的に調べる方法もあります。Data::DumperはASCIIの範囲でない文字であれば、内部文字列を出力するときに、コードポイントに変換するからです。
use utf8; my $str = 'あ'; use Data::Dumper; print Dumper $str;
以下のようにユニコードのコードポイントが16進数で出力されます。
$VAR1 = "\x{3042}";
2013-06-07
テンプレートでは関数の名前空間が共有されるので注意する / Mojoliciousリファレンス
Mojoliciousのテンプレートの中でPerlのコードを自由に書くことができますが、ひとつだけ注意するべきことがあります。それは、すべてのテンプレートで、関数の名前空間が共有されるということです。
# テンプレートA use Encode 'encode';
# テンプレートB encode('UTF-8', $str);
テンプレートBではencode関数をインポートしていないのですが、テンプレートAでインポートしているのでテンプレートBで利用することができます。これはMojoliciousがすべてのテンプレートをひとつの名前空間の中に作成しているからです。
ですので、混乱したくないのであれば、テンプレートの中では関数のインポートを行わないで、完全修飾名で利用するのが安全でしょう。
use Encode (); Encode::encode('UTF-8', $str);