2008-01-01から1年間の記事一覧
Perl › ファイル入出力 › here 現代的なOSでは、「あるプログラムの標準出力」を「別のプログラムの標準入力」に渡すことが可能です。このOSの機能をパイプと呼びます。 パイプという機能は非常に便利な機能です。標準入力からデータを受け取り、標準出力に…
Perl › ファイル入出力 › here リダイレクトとは、標準入力の入力元、標準出力、標準エラー出力の出力先を切り替えるOSの機能のことです。現代的なOSは基本的なリダイレクトの機能を備えています。 リダイレクトの中でも覚えておかなければならないのは、標…
Perl › ファイル入出力 › here 標準入力、標準出力、標準エラー出力について書きます。 標準入力 標準出力 標準エラー出力 1.標準入力 標準入力の読込先はキーボードです。標準入力を利用すると、キーボードから入力を受け取っることができます。キーボード…
Perl › ファイル入出力 › here csv形式のファイルを読み込んで、ハッシュの配列に変換するサンプルです。 ハッシュスライスという機能を積極的に使っているので、可読性はちょっと低いです。Perlをしばらく使って慣れていないと暗号に見えるかもしれません。…
Perl › ファイル入出力 › here 実際にcsvファイルを読み込んで、Perlのデータ型(配列の配列)に変換して、標準出力に書き出すサンプルです。csvから配列の配列への変換はサブルーチンを使って行っています。何らかのファイルを読み込んで編集するといった場合…
.bread { padding:0; margin:0; } .bread li { display:inline-block; list-style-type:none; font-size:14px; } .bread a { padding:3px 5px; width:100%; background:#3cb371; color:white; border-radius:3px; text-decoration:none; } .bread a:hover { …
Perl › 関数 › here getc関数を使って1文字づつ読み込むこともできます。 my $c = getc $fh; サンプル 以下は、1文字読み込みのサンプルです。 use strict; use warnings; # 1文字読み込み # 読み込みたいファイル名 my $file = shift; print "1: 1文字ずつ…
Perl › 演算子 › here ファイルを一行づつ読み込むには行入力演算子「<>」を使用します。読み込む行がなくなると、undefを返却します。 my $line = <$fh>; 他の演算子と異なり「」の間にファイルハンドルを記述することに注意してください。 通常は、while関…
Perl › ファイル入出力 › here Perlにおけるファイルハンドルの概念はややこしいので、解説しておきます。 ファイルハンドルは実体ではなくて概念的なもの Perlでファイルハンドルといった場合は、Perlがファイルハンドルとして認識する複数の実体のことをい…
Perl › 関数 › here ファイルをオープンするには、open関数を使用します。第一引数は、取得したファイルハンドルを代入するための変数、第二引数はオープンモード、第三引数は、ファイル名です。ファイルのオープンが成功したときは、真が、失敗したときは偽…
Perl › サブルーチン › here Perlでは、サブルーチンを動的に生成することもできます。 関数ジェネレータ 関数ジェネレータとは、サブルーチンを生成するためのサブルーチンのことです。関数ジェネレータは、動的にサブルーチンを生成したいときに用いられる…
Perl › サブルーチン › here Perlで「クロージャー」を作成する方法を解説します。 クロージャの定義 クロージャの定義をコードを使って解説します。 use strict; use warnings; # もっともシンプルなクロージャ { # 変数の生成 my $var = 5; sub var { retu…
Perl › 構文 › オートロード Perlではサブルーチンが存在しなかった場合に呼び出されるAUTOLOADというサブルーチンを定義することができます。これをサブルーチンのオートロードと呼びます。 package MyModule; aaaaiiiii( 1, 2 ); our $AUTOLOAD; sub AUTOL…
.bread { padding:0; margin:0; } .bread li { display:inline-block; list-style-type:none; font-size:14px; } .bread a { padding:3px 5px; width:100%; background:#3cb371; color:white; border-radius:3px; text-decoration:none; } .bread a:hover { …
Perl › サブルーチン › here サブルーチンのリファレンスとは、サブルーチンを指し示すもののことです。 # リファレンスを作成 my $twice_ref = \&twice; # デリファレンスして呼び出し my $twice_num = $twice_ref->($num); sub twice { return $_[0] * 2; …
Perl › モジュール › here Hash::Utilモジュールを使ってハッシュのキーの追加を禁止することができます。 use Hash::Util; # 制限 Hash::Util::lock_keys(%hash); # 解除 Hash::Util::unlock_keys(%hash); Hash::Util::lock_keysを使えば、ハッシュのキーを…
Perl › 関数 › here sqrt関数を使用すると正の平方根を求めることができます。平方根とは、2乗すると元の数になる数のことを言い、正と負の値があります。( 例: 4の平方根は、2と-2 )負の平方根がほしいときは、sqrtの結果の符合を変えるだけです。 my $root…
Perl › 演算子 › 算術演算子 › here べき乗を求めるにはべき乗演算子「**」を使用します。 my $two_power_num = 4 ** 2; べき乗を求めるには、** 演算子を使います。べき乗とは、同じ数を複数回かける演算のことです。 サンプルプログラム べき乗を求めるサ…
Perl › サブルーチン › here サブルーチンの具体的な例を使って学ぶために、いくつかの例を挙げて、解説します。 csv形式の文字列を配列の配列に変換する csv形式の文字列を配列の配列に変換するサンプルです。 use strict; use warnings; # 名前,年齢,出身 …
Perl › 演算子 › here ヒアドキュメントを用いれば複数の文字列をわかりやすく記述することができます。 my $text = <<'EOS'; aaaa iiii uuuu EOS ヒアドキュメントを用いれば、セミコロンの位置に注意しましょう。最後のEOSのあとには、セミコロンはなくて…
Perl › サブルーチン › here サブルーチン作成に関するわたしの考えを殴り書きしました。 見出し 引数と戻り値について理解する。 小さなサブルーチンを作成する。 サブルーチンに柔軟性を持たせる。 呼び出しの階層を浅く保つ。 機能を実現するサブルーチン…
Perl › サブルーチン › here Perlのサブルーチンの特徴をまとめておきます。C言語と比較してみました。Perlの言語としての柔軟性が理解できると思います。※1 Perlのサブルーチンの特徴 Perl C言語 1 サブルーチンの定義はどこで行っても良い 一般的に、関数…
Perl › モジュール作成 型グロブは、シンボルテーブルのエントリーを表現します。 *main::num # $main::{num} とほぼ同じ意味。 *num # パッケージ名を省略することもできます。 シンボルテーブル上の、 $main::{num} には、'*main::num' という文字列が代入…
Perl › モジュール作成 › here Perlは、シンボルテーブルというものを持ち、プログラマーが、それを参照したり、変更を加えたりすることができます。Perlは、他の言語に比べて、柔軟で、高い適応力を持ちますが、その力をを生み出している機能のひとつがシン…
Perl › サブルーチン › here サブルーチンの定義は、スコープの影響を受けません。 { sub func { return 2; } } my $ret = func(); サブルーチンは、スコープの影響を受けません。一見すると、funcは、スコープの外では、見えないものと思ってしまいがちです…
Perl › 関数 › here Perlではコンテキストという概念があるので、スカラあるいはリストをコンテキストに応じて返却することができます。 sub func_name{ # 処理 ... return wantarray ? リスト : スカラ; } wantarrayを使えば、リストコンテキストの場合とス…
Perl › 構文 › here Perlにはコンテキストと呼ばれる概念があります。コンテキストとは文脈という意味で、次の二つのコンテキストがあります。 スカラコンテキスト リストコンテキスト スカラとして評価される文脈をスカラコンテキスト、リストとして評価さ…
Perl › here Perlのプログラミングは、コマンドと呼ばれるテキストを入力して実行します。まず最初にWindowsにおけるコマンド実行ツールであるコマンドプロンプトについて解説したいと思います。 コマンドプロンプトとは コマンドプロンプトとは、Windows環…
Perl › インストール ActivePerlをWindowsにインストールしてPerlを使えるようにしましょう。ActivePerl | ActiveStateActivePerlはActiveState社によって無償で提供されているPerlディストリビューションの一つです。特徴は Windows関連のモジュールが多く…
Perl › ファイル操作 › here 複数階層のディレクトリを再帰的にコピーするにはFile::Findモジュールを使用します。 use strict; use warnings; use File::Path 'mkpath'; use Fcntl; use File::Find 'find'; use File::Copy 'copy'; use Cwd 'getcwd'; # 準…