IO::Teeのマルチプレックス(多重化)について調べてみた

続・はじめてのPerlの 8.4.4でIO::Teeが紹介されてるが、 サンプルコードの動作とコメントが一致していないような気がしたので、調べてみた。 # 続・はじめてのPerl P104 の擬似コード use IO::Tee $tee_fh = IO::Tee->new( $read_fh, $log_fh, $scalar_fh )…

続・はじめてのPerl 8章

今日も(ry 8.1 古い方法 ファイルハンドルはデータ型の1つ ライブラリや、コードの他の部分で共有するには? 型グロブや型グロブリファレンスを使う 型グロブ 名前のすべてのパッケージ変数を指すポインタを格納している 型グロブを別の型グロブに代入す…

続・はじめてのPerl 7章

今日もやっぱりまとめなんです。 7章 サブルーチンへのリファレンス 7.1 名前付きサブルーチンを参照するには サブルーチンのリファレンス コードレフとも呼ばれる バックスラッシュ演算子を使い、取得する 配列やハッシュのリファレンスの取得方法と同じ サ…

続・はじめてのPerl 6章

6章 複雑なデータ構造の操作 6.1 デバッガを使って複雑なデータを見るには デバッガの起動 -dスイッチを指定してPerlを起動 $ perl -d sample.pl デバッガの使い方 デバッガは、今から実行する行を出力しコマンド入力を待つ sコマンド プログラムのシングル…

続・はじめてのPerl 5章

今日もまとめ。 5.1 データへの複数のリファレンス Perlは参照カウンタによって、データにアクセスできるルート数を管理 配列の作成で、まず1カウント それに対するリファレンスを作るたびに1カウントされる 参照カウンタが0にならない限り、配列をメモリ内…

IT業界を楽しく行きぬくための「つまみぐい勉強法」 読了

IT業界を楽しく生き抜くための「つまみぐい勉強法」 (技評SE選書)作者: 奥乃美,渋川よしき出版社/メーカー: 技術評論社発売日: 2010/05/07メディア: 単行本(ソフトカバー)購入: 15人 クリック: 408回この商品を含むブログ (45件) を見る非常に読みやすく、…

続・はじめてのPerl 4章

今日もまとめなんです。。。 4章 リファレンス入門 4.1 多くの配列に対して同じ処理を実行するには サブルーチンに配列を渡す サブルーチンで、渡された配列に要素の追加は行えない それを行うためにリファレンスを使う 4.2 配列へのリファレンスを取るには …

続・はじめてのPerl 3章

今日もまとめ 3章 モジュールの使い方 3.1 標準ディストリビューション ポピュラーなモジュールは、すでにPerlに付属されている 5.003_07 98個 5.8.8 359個 これらを「コアモジュール」または、「標準ディストリビューション」と表す Module::CoreListを使い…

家のテレビを撤去した

昨日の事なんですが、テレビを撤去しました。以下のような理由で撤去。 時間泥棒 自分の意志の弱さに起因するのですが、 集中できない、気がついたらすごく時間が立っている事がある。 情報源として魅力を感じない 情報の鮮度は高いとは思うのですが、 それ…

続・はじめてのPerl 2章

まとめ。 2章 中級者の基礎知識 2.1 リスト演算子 print 1つ以上の引数を与えると1つにまとめる もっともよく使われるリスト演算子 sort 入力リストを順番に並べ返す reverse 逆順のリストを返す その他にも多くのリスト演算子 2.1.1 grepによるリストのフィ…

はじめまして数学 18節〜25節

読んだ本のまとめです。 18節 数の原子 素数 すべての合成数は、素数の積であらわすことが可能 素因数 合成数の約数となる素数 素因数分解 合成数を素因数の積に分解すること 合成数 素数の積であらわすことができる数 すべての自然数は、1と素数と合成数で…

The Good Parts 「良いパーツ」によるベストプラクティス 3章

読んだのでまとめる。 3章 オブジェクト 変数型(=オブジェクト以外) 数値 文字列 真偽値 null undefined このうち、数値、文字列、真偽値はメソッドを呼び出すことが可能 イミュータブル(=変更不可能) オブジェクト 変数型以外はすべてオブジェクト オ…

The Good Parts 「良いパーツ」によるベストプラクティス 2章

読んだ。 覚えるために、まとめてみる 2章 文法 2.1 ホワイトスペース /* */ は使わないほうがいい 正規表現リテラル内に出てくる可能性があるから 2.2 名前 アルファベット、数字、アンダースコアで構成される 予約語は名前に使えない e.g. boolean, if, re…

改行コードの取り扱いについて勉強しなおした。

一つ前のエントリーを調べるに当たって勉強しなおしたのでまとめる。\r, \n を各環境下で出力した場合、出力されるコード値それぞれ以下のようになる模様。 Linuxの場合 \r は \x0d として出力され、 \n は \x0a として出力される。 $ perl -e 'print "\r\n"…

「優れたPerlプログラマを見分ける27の質問」にチャレンジしてみる。

念のため続きを読むで答えてます。(3/2 参考を追加)

\cM\cJ って何。

binmodeのドキュメントに出てくる、\cM \cJ が何を意味しているのか分からなかったので調べた。\cM、\cJ は制御文字で、 \cM は、\r と同じ。 \cJ は、\n と同じ。という結論に至ったのだが、合ってるのかな。 #!/usr/bin/perl print unpack( "H2", "\cM" ),…

cpanm でローカル開発環境構築

以前からcpanmを使ってローカル環境にモジュールを突っ込んではいたのですが、 パスの設定など場当たり的にやっていたので、改めて設定しなおしました。 参考 http://d.hatena.ne.jp/tokuhirom/20110201/1296530510 cpanmによるPerlのローカル環境構築 - Per…

Config::Pit を使ってみる

Hokkaido.pm#4にて、aloelightさんが紹介されていたモジュール。 Config::Pitとは? アカウント情報の管理にConfig::Pitを使用することによって、コードからアカウント情報を分離できます。アカウント情報が格納された設定ファイル自体は、~/.pit/ 内に格納…

画像がら位置情報を取得する

Hokkaido.pm#4で紹介されてたので、自分でもやってみる。 紹介されていたのは、Image::ExifTool を使った位置情報の取得方法だったが、 天邪鬼な自分は、別のモジュールを使ってやってみる。 とはいっても、Image::EXIF を使うだけなので労力は大して変わら…

Hokkaido.pm#4 に行ってきた。

書くのが一日遅れましたが、2/19(土)にHokkaido.pm#4に行ってきました。頑張って早起きして、午前中のハンズオンから参加。 内容は、charsbarさんが作成された資料をもとに、 Mojolicius::Liteを使ってWebアプリケーションを作ってみるというものでした。 …

Crypt::SSLeay のインストールではまったので、メモ。

cpanmでCrypt::SSLeayをインストールしようとして、失敗した。build.logを確認すると、以下のようなエラーが出てる。 No installed SSL libraries found in any of the following places. /local /local/ssl /opt/ssl /usr /usr/local /usr/local/ssl /usr/l…

utf8プラグマ使用時の文字列のバイト数の取得方法

bytesプラグマを使うことで解決する。 (11/02/12)追記しました何もせずに length をしてみると。 use strict; use warnings; use utf8; my $str = "あいうえお"; print length $str,"\n"; 結果は文字数。 5 以下の用に bytesプラグマを使うことで、バイト…

m// を リストコンテキストで使う

始めてのPerlより。たまーに使うことがありそうなので、忘れないようにメモがわり。 コード use Data::Dumper; my $text = "Barney Rubble Fred Flintstone Wilma Filntstone"; my ( $first, $second, $third ) = ( $text =~ /(\b\w+\b) \s \b\w+\b \s?/gx )…

perl-casual チャンネルにjoinする。

勉強&刺激になるかなと思い、常駐することにしようかと。 設定した項目 サーバ:irc.freenode.net ポート:6667 チャンネル:#perl-casual 文字コード:UTF-8

Perlのオブジェクト

Sample.pm package Sample; sub new { my $class = shift; bless {}, $class; } 1; sample.pl #!/usr/bin/perl use Sample; my $obj = (); # NG $obj = Sample::new; # OK $obj = Sample::new('Sample'); $obj = Sample->new; 参考 http://www.rwds.net/kur…

ほしい!

MacBook Air 11インチ欲しい!当たらなくても今年中には買いたいなぁ。

forとforeachは同じ。そして、forの反復子変数はエイリアス。

for と foreach は同じ for my @countries = qw/ Japan Korea China /; for my $country ( @countries ) { print "$country\n"; } 結果 Japan Korea China foreach my @countries = qw/ Japan Korea China /; foreach my $country ( @countries ) { print "$…

Error.pm を使ってみる。

Test::Exceptionで、Error.pmの例外をチェックするサンプルがあったのでError.pmを使ってみる。 use Error qw(:try); # 引数が偶数の場合は真を返す。ただし、引数が整数でない場合は例外を返す。 sub is_even { my $n = shift; try { if ( $n != int($n) ) …

モダンPerl入門で、テストに入門してみた。その3 Test::Exception

Test::Exception というモジュールが出てきたので使い方を調べてみた。 Test::Exception CPANからインストール throws_ok throws_ok { $foo->method } qr/division by zero/, 'zero caught okay'; 与えた正規表現が標準エラーにマッチするかチェックする thr…

あけましておめでとうございます。

今年の抱負でも。 このブログを更新し続ける 自分の行動もスケジューリングして行う Webサービスを作る 勉強会に参加し、いろいろな人とコミュニケーションを取る 自分のプライドをへし折る こんな感じで、1年頑張りたいと思います。 あと一つ大きな目標も…