和田憲幸のブログ

札幌市白石区在住、個人事業のWebエンジニア 和田憲幸(43歳)のブログです。

Perlの真価 バッチ処理

PerlというとCGIとかWebとつながりの深いプログラミング言語なわけですが。

2009-09-23 23:13:06
入力時間 / 10:24

そうです。私はPerl使いです。PHPも書けますが私が真に愛しているのはPerlですね。好きよPerl。インタプリタ言語の本尊とも言える言語ですねPerlは。そんなPerlですが何もメールフォームや掲示板を作るためだけの言語ではありません。元々はUnixの標準言語だと言う事を皆さんはご存知かな。

Youtube Movie

上記の動画は3分で書いた例ですが、ナニをやってるかというと特定のフォルダ内にあるHTMLファイルをすべてピックアップして特定の処理を行うという簡単なバッチ処理というやつです。そう。Perlの真価はこの「バッチ処理」にあるわけです。お、たまにまともなことを書いてる。

私が主にどういう事をバッチ処理でやらすかというと、例えばサイトのリニューアルとかあるじゃないですか。どこの業者が作ったかわからない小汚いソースをいじるのは結構大変だったりするわけです。そこでPerlの「正規表現」を使って文章や画像をピックアップしたり、DreamWeaverのテンプレートに自動的に落とし込んだり、といった処理を1発で何百ページも行う事ができるってわけです。スゴイ!!

他にもよくあるのはCSV関連。EXCELシートからCSVに商品データを落としてEC-CUBE用のインポートCSVに自動的に変換するなんて処理は何度やったことかわかりません。手作業でそれをやると非常に面倒なのです。あとは画像と商品データのマッチング処理や、CSVの整合性チェック、果てはメールマガジンの送信まですべてこのバッチ処理で行う事ができるわけです。スゴイぞPerl!!

ということで、私はひとりですべての作業をやってる関係でマンパワーが限られているわけですが、たったひとりでもPerlという相棒がいればハッキリ言って百人力!そこらへんのちっさい企業には負けないスピーディーさを簡単に持つ事ができるわけです。あ~Perlさまさま。

動画のバッチ処理は行数にして20行ちょっと。ちょっと憶えれば誰でも書けるレベルのプログラム。ようはそれをどう使いこなすかって事なんですけどね。元来チマチマした作業が大ッ嫌いなのでとにかくバッチはたくさん書きましたね。ルーティンワークが大嫌い!倍の時間が掛かってもバッチを書いたほうがまだ建設的!

ちまちま似たような作業を繰り返しているあなた!今こそPerlを覚える時ですよ!!
プログラミングができない人は不幸だ。時間を無駄にしているから。

単純にアプリケーションを作れるだけではなく、自身の作業時間を大幅に減らしてくれるプログラムを憶えないのは絶対に損ですよっ!

TAG

P.361

しゅん。さん
Perlってそんな便利なコトができるんですね。。。

参考書籍などあれば是非!!2009-09-24 10:25:38
まるんさん
私もPerlを覚えたいです。 しかし何から始めてよいのか・・・
でも時間はあります! 初歩の取り組み方をご教示願います。2009-09-24 14:53:41
Y2Tさん
WEBではPHPが主流になりつつある的な情報に踊らされてPHPばっかり勉強してますが、やっぱりどの言語も覚えるだけでは宝の持ち腐れなんですね;
どのように使うかが大事だと改めて思った記事でした。
和田さんのブログはこういう記事があるので見逃せないですね!
RSSでの出だし文が毎回憎いです(笑)2009-09-24 18:54:23
かつもるさん
バッチ処理、一見古そうですが、使えますよね。
サラリーマン時代、客先で窮地に陥ったときなど、良く助けられました。
perl使いではないですが、自分も好んで使ってます。
自分もDB設計からパッケージ製作まで一人でやってますので”たった一人でも”というお気持ち凄く良く分かります。
バッチ処理でも何でも駆使すれば百人力ですよね。2009-09-24 18:59:45
ぶりぶりっとね。さん
perlでのバッチ処理は便利ですよねぇ~。
ぶりぶりっとね。メはunix周りのバッチ処理はほとんどperlで作ってまして、真夜中にcronで自動実行させております。
寝てるあいだに仕事してくれるなんて!まぁ素敵!

phpだjavaだc#だと、色々流行ってる言語はありますが、何を作っても痒いところに手が届くのはやっぱりperlなんですよね。

>perlを使ってみたい方々
キモオタニートのボクが言うのもなんですが、ここ10年でプログラミングスタイルが激しく変わっておりまして、古い本やら、昔からあるperlスクリプト等でperlを勉強するのはオススメ出来ません。
新しいスタイルで書くと明らかに簡単で、見通しの良いプログラムが書けるのですが、perlは旧来の書き方も、新しい書き方も両方扱えてしまう、無駄に汎用性が高い言語なので、遠回りしないためにも最初に学ぶ書籍は重要だなー、とおもっちょります。
本を紹介しろと、言われると、何がいいのか、よくわからないのですが・・・
その辺の話は和田司祭からの啓示があると思います。(他人任せ)2009-09-25 02:47:41
和田
>しゅん。さま
Perlはいろいろできますぜぇ!それもそのはず、普通のLinuxアプリケーションも作れる言語ですからね…。参考書籍は次回をご期待くださいっ!

>まるんさま
プログラムのとっかかりはなかなか難しいですがインタプリタ言語は非常にとっつきやすいです。なぜなら結果がすぐわかるから。GUI系の言語だともっと結果を見るまでが大変なんで・・・。初歩の取り組みは別な機会にタップリとハァハァ

>Y2Tさま
PHPは便利ですよっ!でも古臭いPerlでもまだまだ活躍の場はあるもんです!私もPerl使いとしてPerl復権のため頑張りますぞぅ!

>かつもるさま
バッチ処理は便利ですよね!時間・工数を短縮する上で必要不可欠なファクターだす!何気にWindowsのbatも使いこなせば相当使えますよね!DOSコマンド侮れない!

>ぶりぶりっとね。さま
cron先生と簡単なスクリプトがあればデータ収集やバックアップが非常に楽ですよね~。私は文字列操作が多いのでやっぱりPerlだなぁと落ち着いてます…。rubyにも行きたいとは思っていますが…。私のPerlの知識は10年前のソレとほとんど変わってませんが、それでも案外なんとかなりますよねPerlは(笑2009-09-25 04:10:49