2011年4月アーカイブ

はじめて知ったのですが、微妙に気持ち悪い仕様ですね、これ・・・(non-Basherが喜びそうだw)。(← PHP/Perlもそうらしいです。これが普通なのか・・・。)

Bashって「`」で囲めばそこが$()したのと同じ事になるようです(ひょっとして有名?)。

bash.png
↑ やってみた。

Perlで配列をユニーク(unique)にする

| カテゴリ:

Perlで配列をユニークにする方法

PHPのarray_unique的なやつです。

#!/usr/bin/perl

use strict;
use warnings;

my @list = (1, 2, 3, 1);

my @unique = array_unique(@list);

print "@unique";


sub array_unique {
    my @list = @_;
    my %unique;
    for (@list) {
        $unique{$_} = 1;
    }
    return keys %unique;
}

※この方法だと要素の出現順序が変わってしまうので、厳密にはPHPのarray_uniqueとは違います。

参考

Hashを使って配列をユニークにしよう!
PHP array_unique in Perl » From PHP to Perl
svn log -q の結果を月別・人別に集計するperlスクリプトを書いたので公開します。

(既にCPANモジュールで同じようなのがあるかもしれませんが。。)

まずはEthna.phpをアップグレード

Ethna.phpはアップグレードしても問題なさそうだ。

Ethna2.6からは、クラスファイルの命名規則が変わっている(Ethna_ActionClass.php → ActionClass.php)ので、ファイル名をリネームする必要がある。
なんでこんな比較文献学みたいなことをやってるかと言うと、version2.5をすっ飛ばして一気に2世代分もバージョンを上げるのが怖いからです。(←ビビり)

Ethna.phpの比較


2.3.5のEthna.phpをUTF8で保存してから、バージョン間の差分を見てみる。
ソースコードを展開して、中身を比較してみる。
ソースの入手方法は、
Ethna2.6は前回の記事を参照。
Ethna2.3.5は公式サイトに入手方法が書いてないけど、sourceforgeからダウンロードできる。
wgetで取得するならこう。
$ wget "http://sourceforge.jp/projects/ethna/svn/view/ethna/tags/ETHNA_2_3_5.tar.gz?root=ethna&view=tar"

Ethna2.3.5とEthna2.6のディレクトリ構造を比較する

まずはトップレベルディレクトリを比較する。
$ ls ETHNA_2_3_5
CHANGES  Ethna.php  LICENSE  README  bin/  class/  misc/  skel/  test/  tpl/

$ ls Ethna-2.6.2011010402
CHANGES  Ethna.php  LICENSE  README  bin/  class/  extlib/  skel/  test/  tpl/
Ethna2.6ではextlibが増えたみたい。
中身はこんなの。

 extlib
  `-- Plugin
      |-- Filter
      |   `-- Debugtoolbar.php
      `-- Logwriter
          `-- Debugtoolbar.php
とりあえずは無視しても問題なさそうだ。

次回は、Ethna.phpを比較してみる。

EthnaをPHP5.3に対応させる方法(下調べ編)

| カテゴリ:
仕事で開発しているWebサイトはEthna2.3.5なので、E_STRICTやPHP5.3を使うことができない。

PHP5.1とか5.2だと、配列の操作で無名関数を使うコードを書きにくいので、foreachループばかり使ってしまう。
結果、なんとなくダサイコードになる。

いい加減モダンPHPを使いたくなってきたので、EthnaアプリをPHP5.3対応させる方法を調べてみた。

まずはEthna公式サイトの最新ニュースを見る。

Ethna 2.6.0 beta 2 リリース (2011/1/4)
beta1 に引き続き、開発版のリリースです。
beta1 のバグフィックスと、Smarty 3 用のRendererの追加をしました。

Ethna 2.6.0 beta 1 リリース (2010/12/27)
Ethna 2.5.0 から PHP 5.3 でエラーとなる機能を修正し、2.5.0 preview 5以降に変更を予定されていた機能を盛り込んだ 2.6.0 の開発バージョンをリリースします。(このため、PHP 4 に対しては後方互換性を失います)
なるほど、Ethna2.6.0にすればPHP5.3対応できるのか。

IPアドレスを確認するだけのサイト、「IPアドレス確認君」をリリースしました!

IPアドレス確認君

人気記事

このアーカイブについて

このページには、2011年4月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2011年3月です。

次のアーカイブは2011年5月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

最近の人気記事