40歳からのキャリアチェンジ

20代はエンジニア・PM、30代はWeb系エンジニア向けのキャリアアドバイザー。40代の今はフリーランスで開発含めて色々やってます。技術ネタとしてはRuby/RailsとJavaScript関連あたり

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



一昨日、会社帰りにWEB+DB PRESS Vol.39を購入したのですが、連載記事のRecent Perl Worldで、綺麗なコード+ノウハウの関係という内容で、シェルスクリプトを最初はとりあえず動かせるレベルのものから徐々にリファクタリングして、綺麗なコードにしていくという内容で、実行するスクリプトも、コマンドラインでサーバ情報を取得するという面白そうな内容だったので、本を読みながら昨日はコーディングの勉強してました。

いくつか、つまづいた所をピックアップすると、Mac 上で開発しているので、Linux上だと
#!/usr/local/bin/perl
となる所は、OS Xだと
hoyamada-mac:~/bin hoyamada$ which perl
/usr/bin/perl
ということなので
#!/usr/bin/perlとしないといけないことに最初気づかなかったのでここを修正。

今回の連載記事で想定している環境は
簡単のために、サーバのOSはLinuxであると限定します。またサーバにはSSH公開鍵でログインできることを前提とします。
ということで、sshできる環境はVMWare上のLinuxがあるので、OKなんだけど、公開鍵でログインできるようにしていないから、本の通りコーディングして実行しても

Permission denied (publickey,password).

という結果になるので、Net::SSHの処理の所を工夫するか、公開鍵でログインできるような設定に変更しないとダメだね....

あとコーディングしていて、いっつもPerlのソースでわかんないのが
my $cpuinfo = shift;
というようなソースの場合のshiftの部分の所と

if ($line = ~ m/^model name\s+:(.*)/)

の$line以降の正規表現の所。
あとは、本筋とは離れるけど、CarbonEmacs上でコーディングしていたんだけど、バージョン管理のためのPCL-CVSというのをたまたま見つけて、試しに使ってみて、変更履歴も以下のように確認できました。

revision 1.6locked by: hoyamada;
date: 2007/06/24 07:52:28; author: hoyamada; state: Exp; lines: +2 -2
xxxxxxx

最近、ブログを書く時に、基本的にはCarbon Emacs上で書いたやつをコピペすることが多いんだけど、意味も無くこのCVSの機能使ってみようかなぁ。本当はSubversion使いこなしたいんだけど、元々こいうバージョンコントロールのツールの使いこなしに慣れていないから、このPCL-CVSから徐々に慣れていくというのもありかなぁと思いつつ、全くまとまりが無い文章になってしまった...
Tags: