ちょっとだけPerlの勉強しました -part3

a0033832_19283859.jpgWEB+DB PRESS Vol.39の連載記事のRecent Perl Worldの記事を読みながらコマンドラインでサーバのCPU、メモリ情報を取得するスクリプトを本のソースを見ながらですが無事にできました。

--csv というオプションを付けて
./server-info-03.pl --csv 192.168.xxx.xxx
とやると
"192.168.231.128"," Genuine Intel(R) CPU T2400 @ 1.83GHz","1","248.6K"
という結果になりオプションをつけずに
./server-info-03.pl 192.168.xxx.xxx
とやると、以下のようにアスキーテーブルで出力されます

.---------------------------------------------------------------------.
| Title | Value |
+------------------+--------------------------------------------------+
| Host | 192.168.231.128 |
| CPU Model | Genuine Intel(R) CPU T2400 @ 1.83GHz |
| Number of CPU | 1 |
| Amout of Memmory | 248.6K |
'------------------+--------------------------------------------------'

で、ここまでは、連載記事でいうと、前置きというか、あまり良いコードとはいえないそうで、
一見して汚いだけでなく拡張性が乏しいのも問題です。
ということで、リファクタリングしていくことになるのですが、ちょっと意外だったのが
ところで今回わざとスクリプトを汚く書いているようにも見えますが、筆者は普段もこういう手順で書くことが多いです。まずはやりたいことを決めて、そのやりたいことが本当に実現できるか、ベタなスクリプトを書いてとりあえず試します。
と書かれていて、結構最初からある程度綺麗なコードを書かれているのかと思ったので、なんかうまく言えないけど励みになったのと、著者の方が汚いと言われているコードから綺麗なコードにちょっとづつ変えていくのを実際に読んでいくことで、オブジェクト指向っぽく書かれているPerlのソースをいきなり読むよりも最初汚く書かれているベタなやつから読み進めることで、個人的にはとっても理解しやすいなぁー


今日の勉強はとりあえずここまで。

余談
スクリプトと関係ないのですが、OS Xから、SSHするターミナルとして、iTermを使っているのですが、SSHした後に各種コマンドを実行した際にエラーメッセージが文字化けしていたのですが、ヘルプを読んで以下の手順で設定変更したらOKだった。
1.Infoアイコンをクリック
2.encodingの設定がDefaultが、Western(ASCII)になっているので、 Japanese(EUC)に変更
[PR]
by h5y1m141 | 2007-07-08 19:32
<< 今の時代の「読み書きそろばん」 ちょっとだけPerlの勉強しま... >>