2008-07-01から1ヶ月間の記事一覧

標準入出力とリダイレクト

Perl › ファイル入出力 › here リダイレクトとは、標準入力の入力元、標準出力、標準エラー出力の出力先を切り替えるOSの機能のことです。現代的なOSは基本的なリダイレクトの機能を備えています。 リダイレクトの中でも覚えておかなければならないのは、標…

標準入力 標準出力 標準エラー出力

Perl › ファイル入出力 › here 標準入力、標準出力、標準エラー出力について書きます。 標準入力 標準出力 標準エラー出力 1.標準入力 標準入力の読込先はキーボードです。標準入力を利用すると、キーボードから入力を受け取っることができます。キーボード…

csvファイルを読み込んでPerlのハッシュの配列に変換する

Perl › ファイル入出力 › here csv形式のファイルを読み込んで、ハッシュの配列に変換するサンプルです。 ハッシュスライスという機能を積極的に使っているので、可読性はちょっと低いです。Perlをしばらく使って慣れていないと暗号に見えるかもしれません。…

csvファイルを読み込んで配列の配列に変換に変換する

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 { …

getc関数 - ファイルから一文字ずつ読み込む

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がファイルハンドルとして認識する複数の実体のことをい…

open関数 - ファイルをオープンする

Perl › 関数 › here ファイルをオープンするには、open関数を使用します。第一引数は、取得したファイルハンドルを代入するための変数、第二引数はオープンモード、第三引数は、ファイル名です。ファイルのオープンが成功したときは、真が、失敗したときは偽…

サブルーチンの動的な生成

Perl › サブルーチン › here Perlでは、サブルーチンを動的に生成することもできます。 関数ジェネレータ 関数ジェネレータとは、サブルーチンを生成するためのサブルーチンのことです。関数ジェネレータは、動的にサブルーチンを生成したいときに用いられる…

クロージャーを作成する方法

Perl › サブルーチン › here Perlで「クロージャー」を作成する方法を解説します。 クロージャの定義 クロージャの定義をコードを使って解説します。 use strict; use warnings; # もっともシンプルなクロージャ { # 変数の生成 my $var = 5; sub var { retu…

AUTOLOAD - サブルーチンのオートロード

Perl › 構文 › オートロード Perlではサブルーチンが存在しなかった場合に呼び出されるAUTOLOADというサブルーチンを定義することができます。これをサブルーチンのオートロードと呼びます。 package MyModule; aaaaiiiii( 1, 2 ); our $AUTOLOAD; sub AUTOL…

コマンドプロンプトでUTF-8の文字を表示する

.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; …

Hash::Util - ハッシュのキーの追加を禁止する

Perl › モジュール › here Hash::Utilモジュールを使ってハッシュのキーの追加を禁止することができます。 use Hash::Util; # 制限 Hash::Util::lock_keys(%hash); # 解除 Hash::Util::unlock_keys(%hash); Hash::Util::lock_keysを使えば、ハッシュのキーを…