localdisk

PHP とか Java とか Web とか好きなことを書きます。

Perl vs PHP と言われてもなぁ…

僕の尊敬する Erogeek のゆーすけべーさんがこんなエントリを書かれてました。

…読まれましたか?
このエントリでは、結論としてWebの開発から小物スクリプトまでPerlに軍配が上がるとされていますが、僕としてはPerl はライブラリを入れないとちょっとした処理も書けない不便な言語としか読めませんでした。
そして上記エントリは比較記事として PHP のコードがないという点が不完全です。なので僕が PHP コードを書いてみたよ。以下ライブラリを使用しない PHP コード。

<?php
$dom = new DOMDocument();
@$dom->loadHTML(file_get_contents('http://yusukebe.com'));
$nodes = $dom->getElementsByTagName('h2');
foreach ($nodes as $node) {
    $classes = explode(' ', $node->getAttribute('class'));
    if (in_array('entry-title', $classes)) {
        echo $node->nodeValue . "\n";
    }
}

結果はこんな感じになります。

Perl vs PHP
Twib in Yokohama.pm テクニカルトーク#5
実例で学ぶPerlにおけるリファレンス
Perl入門本を書こうとしている話
PHPの小文字から始まる関数が4405個もあってびっくりした件
Perl初心者向け勉強会(by カジュアルPerl)をやりますという予告
Twitterの友達が好きなアーティストがわかっちゃったりする「音探し」を作ってみた
Twitterで話題のYouTube動画が一目でわかるTubetter - ツベッターを作ってみた
CatalystアプリケーションをStarmanで運用しよう!
3/5 Yokohama.pm #5 が開催されます

ついでにライブラリを使用した例をかいておきましょうか。以下はPHP Simple HTML DOM Parserの例です。

<?php
require_once 'simple_html_dom.php';
$html = new simple_html_dom('http://yusukebe.com');
foreach ($html->find('h2.entry-title') as $element) {
    echo $element->text() . "\n";
}

結果は同じなので省略。僕はどちらの言語が「Web の開発や小物スクリプトの作成にどちらが向いているか」ということを論じるつもりはありません。ただ、前にも書いたように判断材料として PHP の例がないのは不公平だと思います。なので、このエントリを書きました。読んでくれた皆さんがどちらの言語を選ぶにしろ、ストレスなくプログラミングすることの助けになれば幸いです。


え…? まだデバッグの例が書かれてないって? var_dump を使えばいいです。ライブラリとかいらないです。
(追記)otsune さんのご指摘で気がつきましたが phpspot の改変ネタなのですね。見逃してました。おっちょこちょいで大人気ないなぁ。僕は。エントリはこのままにしておきます。