3000-01-01
サンプルコードによるPerl入門 目次
サンプルコードを中心としたPerlの入門サイトです。応用的な話題もたくさん扱っているので、Perlを詳しく学びたい方にはおすすめのサイトです。
(スマートフォン、タブレットの場合のサンプルコードによるPerl入門のPCサイト表示はこちらから行うことができます)
他の入門サイトは、Perl4の書き方をされていることが多いですが、サンプルコードによるPerl入門では、Perl5の記述を使っています。(KENT WEBのPerl入門、とほほのperl入門、WisdomSoftのPerl入門などの書き方はPerl4の書き方です)
筆者は木本裕紀(きもとゆうき)といいます。自己紹介は木本裕紀(きもとゆうき) @ はてなダイアリーにあります。サイトの更新情報はTwitterで発信しています。Twitterでのフォローもお願いします。feedlyやlivedoor Readerに登録して購読することもできます。記事の更新を知ることができるので技術系の情報収集に便利です。
動画による紹介です(木本裕紀のPerlチャンネル)。
仕事や学校でPerlを使う初学者の方にサンプルコードによるPerl入門を教えてあげてほしいです。プログラミング系の入門サイトの紹介や無料でプログラミングを学べるサイト、Naverまとめなどでも、ぜひPerlのサイトとして紹介してほしいです。
気に入った記事がありましたらはてなブックマークもお願いします。ブックマークボタンとツイートボタンが各記事の右下についています。コメントやトラックバックも受け付けています。
Perl基礎
Perlの基礎について解説します。Perlのインストール、基本的な構文、配列、ハッシュ、正規表現、ファイル入出力、オブジェクト指向などを学ぶことができます。
- コマンドプロンプト- コマンドプロンプトの使い方
- Perlとは - Perlの特徴について
- Perlインストール - Perlのインストール方法
- Perl基礎文法最速マスター - Perlの基礎をすばやく学習
- 現代的なPerlの記述方法 - Perlの現代的な書き方
- 実践で役立つPerl正規表現 - Perlの正規表現で頻繁に利用するテクニック
- 配列とハッシュを自由に扱う - ハッシュと配列の扱い
- サブルーチンの作成 - サブルーチンの作成方法
- Perlのスコープを理解する - スコープという概念を学習
- ファイル入出力の基礎 - ファイルの読み書き
- Perlオブジェクト指向入門 - オブジェクト指向の入門
- デバッガの手引き - デバッガの紹介
- Perl豆知識 - 知っておくと便利な豆知識
- Perl FAQ - Perlでよくある質問に答える
Webアプリケーション開発入門(CGI含む)
Perlを学ぶ楽しい方法のひとつはWebアプリケーションを作成してみることです。またWebアプリケーションを作成できれば、みんなの役に立つWebサービスを公開することもできます。また仕事を見つける上で高い能力として評価されると思います。androidやiphoneのアプリのサーバー側のバックエンドの処理部分を作成することもできます。
- Webアプリケーション開発入門(CGI含む) - Webアプリケーションの開発手法の解説
Perl書籍
Perl関連の書籍の紹介です。「サンプルコードによるPerl入門基礎編」「簡単プログラミング Perl/CGI」と「もっと自在にサーバを使い倒す 業務に役立つPerl」は僕が書いています。
Perl応用
基礎を学び終えたら、関数とモジュールについて知るのが、上達の近道です。よく使用する関数や、モジュールについて解説しています。またデータベース操作についても学ぶことができます。
- よく使用する関数一覧 - よく使用する関数の紹介
- Perlモジュール徹底解説 - モジュールについての詳しい解説
- Validator::Customリファレンス - HTMLフォームのバリデーション
- SQLiteで学ぶデータベース操作の基礎 - SQLiteとDBIを使ったデータベース操作
- DBIx::Customリファレンス - データベースに便利にアクセス
- Perlその他の情報
木本裕紀(きもとゆうき)のPerl動画チャンネル
- 木本裕紀(きもとゆうき)のPerl動画チャンネル - youtubeでPerlに関連することを動画で放送しています。
Perlリファレンス
- Perl逆引き辞典 - 逆引き辞典です。やりたいことをさがせます。簡単なサンプルつきです。
- Perl標準関数リファレンス
- Perl言語リファレンス - Perl言語のリファレンスです。
Perlその他
- 技術ニュース - 注目した技術のニュースをこちらに書いています
- 読み物 - Perlの技術的な話題を中心にしていろいろな話題について書いています
- サンプルコードによるPerl入門の人気エントリー
- サンプルコードによるPerl入門のコーディングルール
- Perl公式ドキュメント一覧(日本語訳つき)
- Perlで作成されているWebサイト
- Perlの情報を発信しているブログ
- Perlで作成されたアプリケーション
- Perlのコミュニティと勉強会の紹介
- Perlに関連した動画・音声・podcastなど
- Perl関連サイトの紹介
Perl以外の技術情報
- CentOSメモ - CentOSでの環境構築など
- Apacheメモ - Apacheの入門
- Gitメモ - Gitの入門
- bashメモ - bashの入門
- MySQLメモ - MySQLに関するメモ
- Perl以外の技術情報その他
- もしかしたら役に立つかもしれないツールやモジュール
著者
- 木本裕紀(きもとゆうき) @ はてなダイアリー - 筆者の自己紹介はこちらで行っています。
2013-10-24
perlintroを英語で読む2 - 木本裕紀(きもとゆうき)のPerl動画チャンネル
perlintroを英語で読んでいきます。第二回です。
「perlintroを英語で読む2」の内容です。
最後にryがつくと形容詞
dose 三人称単数
「さえ」と訳す強調のeven
区切りがどこにあるかを考えて読むことが大切
「has + 過去分詞」現在完了形のイメージ
inの訳し方、〜の中に、〜において
ofの後ろは名詞
followの訳し方
可能性を表すcan
2013-10-23
基本的な統計関数(1) - 最大、最小、合計、平均、中央値、最頻値、ソート / PDLによる統計解析
基本的な統計関数を紹介します。
最大
一次元のパドルから、最大値を求めるには、PDL::Ufuncモジュールのmax関数を使用します。
use PDL; use PDL::NiceSlice; use PDL::Ufunc qw/max min sum avg qsort/; # データ my $nums = pdl [4, 2, 7]; # 最大値 my $max = max $nums;
PDL::Ufuncモジュールは、パドルから統計値を計算するための関数を提供しています。
最小
最小値を求めるにはPDL::Ufuncモジュールのmin関数を使用します。
# 最小値 my $min = min $nums;
合計
合計を求めるにはPDL::Ufuncモジュールのsum関数を使用します。
# 合計 my $total = sum $nums;
平均
平均を求めるにはPDL::Ufuncモジュールのavg関数を使用します。
my $average = avg $nums;
中央値
中央値を求めるにはPDL::Ufuncモジュールのmedian関数を使用します。
my $median = median $nums;
中央値とは、すべての値を並べたときに真ん中にくる値のことです。
最頻値
最頻値を求めるにはPDL::Ufuncモジュールのmode関数を使用します。
my $mode = mode $nums;
最頻値とは、もっとも多く出現する値のことです。
ソート
ソートを昇順で行うにはPDL::Ufuncモジュールのqsort関数を使用します。
# 昇順ソート my $nums_sort_asc = qsort $nums;
ソートを降順で行うには、昇順ソートとスライスと組み合わせます。
my $nums_sort_desc = $nums_sort_asc(-1:0);
"-1:0"の意味は、最初の-1というのは、最後の要素ということを意味します。0というのは最初の要素を意味します。"-1:0"で、最後の要素から最初の要素までという意味になって、順番を逆転させることができます。
サンプル
実行できるサンプルです。
use strict; use warnings; use PDL; use PDL::NiceSlice; use PDL::Ufunc qw/max min sum avg qsort/; # データの作成 my $nums = pdl [4, 4, 2, 2, 2, 7]; # 最大値 my $max = max $nums; # 最小値 my $min = min $nums; # 合計 my $total = sum $nums; # 平均 my $average = avg $nums; # 中央値 my $median = median $nums; # 最頻値 my $mode = mode $nums; print "Max: $max\n"; print "Min: $min\n"; print "Total: $total\n"; print "Average: $average\n"; print "Median: $median\n"; print "Mode: $mode\n"; # 昇順ソート my $nums_sort_asc = qsort $nums; # 降順ソート(昇順ソートとスライスと組み合わせる) my $nums_sort_desc = $nums_sort_asc(-1:0); print "$nums_sort_asc\n"; print "$nums_sort_desc\n";
2013-10-22
パドルの作成、値の取得と代入、パドルの切り出し、パドルの長さ / PDLによる統計解析
R言語で統計解析を行っている人が、PerlでのPDLを使った統計解析作業を行えるように、PDLの入門を書いてみたいと思います。Perlの統計解析ライブラリであるPDLが使えるようになれば、Excelで行うような複数列のデータの統計処理が行えるようになります。
まずもっとも簡単な1次元のデータ構造を作成してみましょう。次のコードを見てください。pdl関数を利用すると、1次元のデータ構造を作成することができます。
use strict; use warnings; use PDL; # データの作成 my $nums = pdl [2, 4, 7]; # データの出力 print $nums;
このサンプルを実行すると、画面には次のように出力されます。
[2 4 7]
データの取得と変更
pdl関数で作成されたデータは、パドルと呼ばれます。1次元のパドルの要素を取得してみましょう。データを取得するにはatメソッドを使用します。
my $first = $nums->at(0); my $second = $nums->at(1);
上記の例では、パドルに含まれる要素の値を取得しましたけれど、パドルとして取得することもできます。
一部のデータをパドルとして取得するには、いくつかの方法がありますがナイススライス記法で記述するのが簡単です。ナイススライス記法を記述するためのPDL::NiceSliceモジュールを読みましょう。これはスクリプトの先頭で行っておきます。
use PDL::NiceSlice;
要素をパドルとして取得するには$変数名(要素番号)という記法を使用します。
# 要素をパドルとして取得 my $pdl_first = $nums(0); my $pdl_second = $nums(1);
これらはパドルですから、要素の値自体を取得したければatメソッドで取り出すことができます。
my $first = $pdl_first->at(0); my $second = $pdl_second->at(0);
要素の値の変更を行う場合はも、ナイススライス記法を使用します。.=演算子を使用します。.=は文字列の結合ではなくて、代入のためにオーバーライドされています。
# 要素の値を変更 $nums(0) .= 5;
PDLではパドルの複数の部分を新しいパドルとして切り出すこともできます。二番目と三番目の要素を切り出して見ましょう。次のように$変数名(n:m)という記法を利用すると、パドルの一部を切り出すことができます。
my $pdl_parts = $nums(1:2);
切り出したパドルのすべての要素に値を代入することもできます。
$nums(1:2) .= 8;
このように切り出した部分の集合に対して、同じ演算を行うことができるのがPDLの特徴になっています。
1次元のデータの長さを取得してみましょう。データの長さを取得するにはdimsメソッドを使用します。
my $length = $nums->dims;
サンプル
実行できるサンプルです。
use strict; use warnings; use PDL; use PDL::NiceSlice; # データの作成 my $nums = pdl [2, 4, 7]; # 要素の出力 print $nums->at(0) . "\n"; print $nums->at(1) . "\n"; # パドルの取り出し my $pdl_first = $nums(0); my $pdl_second = $nums(1); # 代入 $nums(0) .= 5; # 複数要素のパドルの取得 my $pdl_parts = $nums(1:2); # パドルとして取り出した複数の要素への代入 $nums(1:2) .= 8; print $nums . "\n";
2013-10-21
プログラミングとは - 木本裕紀(きもとゆうき)のPerl動画チャンネル
プログラミングとはどんなことをするのかについて話しています。
「プログラミングとは」の内容です。
プログラミングという言葉を理解してもらいたい
プログラミングとは手順を書くということ
クーラーのリモコンの開始ボタンと停止ボタン
クーラーのリモコンの中にはプログラミングが書かれている
手順はプログラミング言語と呼ばれるもので書く
タブレットPCでの操作
指でスワイプすると画面が動くという手順が書かれている