『初めてのPerl』第5章 入出力

  • 行入力演算子:<>

ダイヤモンド演算子<>:ユーザーが指定した場所から入力を読み取り

autodie:

変数名の区切り:

[Mac] OS X Marvericksのプレビュー.appでブックマークを使う

Mac標準アプリの1つ「プレビュー(Preview.app)」には、ブックマーク機能があります。

この機能は、OS X Marvericksでも残っているのですが、アクセス方法が変わっています。

Mountain Lionでは、メニューに「ブックマーク」があって、そこから「ブックマークを追加」ができたのですが、Marvericksでは「ブックマーク」メニューが無くなりました。

ブックマークを追加するには、「ツール」メニューから、「ブックマークを追加」をクリックします。

また、ショートカットは以前と変わっていないので、Cmd + Dでも追加できます。

既存のブックマークは、「表示」メニューの「ブックマーク」をクリックすると表示されるサイドバーで確認できます。

『初めてのPerl』第4章 サブルーチン

  • Perlでは、ユーザーが定義した関数のことをサブルーチン(subroutine)と呼ぶ
  • サブルーチンの名前には、頭にアンパーサンド(&)をつける(省略してもコードの意味が変わらない場合には、省略できる)
  • サブルーチンはファイル内のどこで定義してもよい(プロトタイプに関する例外はある)
  • サブルーチンのスコープは原則としてグローバル
  • 同じ名前のサブルーチン定義が2個あると、後ろにあるものが前のものを上書きする(use warningsをつければ検出可能)
  • use strict をつけると未定義変数の使用等に警告が出る。
  • プラグマで最低限必要なバージョンとして5.12以降を指定すると、暗黙のうちにstrictプラグマも有効になる

サブルーチンの中で最後に行われた計算の結果が、自動的に戻り値になる:

サブルーチンに与えた引数は、$_[0], $_[1], … といった変数に格納される(配列@_からも引数を取り出せる):

変数名の前にmyをつけることで、レキシカル変数を作れる。レキシカル変数のスコープはブロック内のみ。

可変長引数:

stateで永続的なプレイベート変数を定義する(PHPでいうstatic):

配列・ハッシュをstate変数として使う場合は、リストコンテキストでの初期化ができない

『初めてのPerl』第3章 リストと配列

  • リスト(list):スカラーの集合に順序を付けて並べたもの
  • 配列(array):リストを格納する変数

PHPの世界では何でもかんでも「配列(array)」だけど、Perlの世界では中身(リスト)と容れ物(配列)を区別する。たぶんPHPの方が異端。

配列とスカラー変数の名前空間は衝突しない:

範囲演算子(PHPだとrange()):

qwショートカット:qwとデリミタで囲まれ、空白文字列で区切られた文字列は、それぞれシングルクォートで囲まれた文字列とみなされる

リスト代入:リスト値を変数に代入(PHPだとlist()

pop:末尾から引っこ抜く

push:末尾に突っ込む

shift/unshift:先頭から引き抜く/先頭に突っ込む

なお、配列中の任意の位置から値を取り除いたり、任意の位置に値を挿入する方法として、spliceがある。ただ、spliceは用例が長くなるので省略。

変数展開:配列はダブルクォートで囲まれると変数展開される

デフォルト変数 $_:Perlは、変数名を指定しない場合、$_をデフォルト変数として使うことが多い

[読書]『小さなチーム、大きな仕事』

「37シグナルズ」といえば、「Ruby On Rails」の開発者、David Heinemeier Hansson(DHH)が在籍していることで有名。代表的な製品は、Basecampというプロジェクト管理ツール。日本ではあまり知られていないけど、海外では人気がある。約300万人のユーザーがいて、100万ドル以上の利益を上げているとか。

では、300万ユーザーを抱えるサービスを、37シグナルズは何人で運営しているか? 答えは、16人。しかも、37シグナルズの運営するサービスは、Basecampだけではない。

37シグナルズのように、わずかな人数で大きなビジネスを行うにはどのような考え方が必要なのか? それを、本書から学ぶことができる。

「計画は予想にすぎない」など、ものを作る際の考え方はアジャイルっぽい(計画よりも、変化への対応を重視する)。

一方、「新興企業ではなく企業を始めよう(Start a business, not a startup)」など、ビジネスの基本的な部分では堅実な印象を受ける。Webサービスのスタートアップ的な「サービスのユーザーをどんどん増やすのが当初の目標。収益化の方法は後で考える」というモデルとは大きく異る。

コンパクトで完成度の高い製品を作ることで、無駄を排して高い利益を上げる、という37シグナルズのスタイルは、多くの企業が見習うことができる仕事の哲学だと思う。

主張がシンプルで、文章も切り詰められているので、とても読みやすい。

原書のKindle版も安いので、英語が読めるKindleユーザーはこちらの方がおすすめ。平易な英語なので英語の教材としても良い。

Rework
Jason Fried
Crown Business
2010-03-09