ログイン
i-mobile
記事の一覧
4.前を表示|次を表示6.

2004-07-16 Friday Perlな日々


※2005/04/22 Fri 11:07:57 に再編集されました。
※2004/10/30 Sat 17:19:54に再編集されました。

[][]本末転倒 Add Star

まずは、id:ef66様、わがままを聞いてくださってありがとうございます
勝手モジュールインストールできない人様のサーバーでも、古いバージョンPerlでも動くことを考えれば、これくらいの簡便さが一番でしょうね。
#それにコメントがいっぱい……これくらいしないと一週間後読んだ時にわからなくなってますよね。
後は無圧縮ZIP作成できればいい訳で。
興味が湧いたので、ググったところ、404 Not Foundなんてモジュールもあることがわかりました。
インストールされているPerlにArchive::Zipが含まれているかどうか調べるために、使えるモジュールリストアップする.plファイルを作り、ついでにそれをCGI化してみました。INC.cgiとでも名付けるべきかと。

#!/usr/bin/perl
use strict;
use CGI;
my $q = CGI->new;
my @modules = ();
foreach my $base_dir ( @INC ) {
  my @dir = ( undef );
  while ( @dir ) {
    my $dir = pop @dir;
    my $open = $base_dir;
    $dir and $open .= "/$dir";
    opendir ( DIR, $open );
    my @object = grep { !/^\./ } readdir ( DIR );
    closedir ( DIR );
    push @dir, map { "$dir/$_" } grep { -d "$base_dir/$dir/$_" } @object;
    push @modules, map { "$dir/$_" } grep { /\.pm$/ } @object;
  }
}
map { s/^\/// } @modules;
my %modules = map { $_=>1 } @modules;
@modules = sort keys %modules;
my $modules = {};
foreach ( @modules ) {
  my @temp = split /\//;
  my $eval = '$modules->'.join('->',map{ '{"'.$_.'"}' }@temp).'= 1;';
  eval $eval;
}
print $q->header;
print $q->start_html(-title=>'modules in this Perl.');
print hashref2list($modules);
print $q->end_html;

sub hashref2list {
  my $hashref = shift;
  my $parent = shift;
  my @keys = keys %{$hashref};
  my @file = ();
  my @dir = ();
  foreach ( @keys ) {
    if ( ref $hashref->{$_} ) {
      push @dir, $_;
    } else {
      push @file, $_;
    }
  }
  @dir = sort @dir;
  map { s/\.pm$// } @file;
  @file = sort @file;
  return $q->ul(
    $q->li([map { "$parent$_" } @file]),
    $q->li([map { $_.'::'.hashref2list($hashref->{$_}, $parent.$_.'::') } @dir])
  );
}
exit(0);

結論から言うと、入っていましたので、無圧縮ZIPを作るのに他のソフトを入れる必要もないことが判明。ああ、Perlは楽でいい。また色々試す予定です。
ありがとうございました。>id:ef66

[][]Perlexe Add Star


PerlスクリプトWindows 用の実行ファイル (exe形式) に変換するツールには次のようなものがあるようだ。

perl2exe
Lite版 $49
PerlApp
Perl Dev Kit付属 ($195)
perlcc
複雑なスクリプトは駄目みたい
[App::Packer]
開発が 2003年3月から停滞している模様
PAR
開発が活発な模様

ラクダのステーキ: PerlGUI を読むと PAR がよさそうなので、試してみた。
Perl のスクリプトを Windows 用の実行ファイル (exe形式) に変換する


やってみるかな。

[]本日の素敵ワードたち Add Star

google:人工無能 海江田
相変わらず意図が読めません。
google:ヘンゼルとグレーテル 論文
今度こそ、童話を解析した論文を探しに来たようです。
……まあ、ここにはそんなものないんですけど。
google:ロボこみ エロ漫画
むう。もちろんヒロイン鈴木ロボ子だよな。
……ギャグだかマジだかよくわからんが。
google:少年型アンドロイド
こんなものまでひっかかるようになった俺のダイアリー
google:モッコリぱんつ
こんなものまでー!
google:性欲解消法
なくてすまん。
google:蒼崎橙子 生首
うんうんうん。世の中には存外に生首ストが多いらしい。
google:カービィ ヌード
……あるのか!? いや、それ以前に嬉しいのかそれ! 萌え擬人化か!?

[][][]SIMPLE2000 Add Star

なんか、赤字とか出してる割には元気だなあ、D3 PUBLISHER
それとも、これが末期のソフトハウスを襲う駄目開発ラッシュスパイラルなのか?

# $sf はソフトハウスである。
my $sf = Soft::House->new;
# $bank は銀行である。
my $bank = Bank->new;

# ソフトハウスの所持金が尽きるまでこのループは続く。
while ( $sf->money > 0 ) {
  # 企画を立案する。ただし、開発期間は短く。
  my $plan = $sf->devise(-span=>'short');
  # その開発に必要な金額を銀行から借り、ソフトハウスの所持金に加える。
  $sf->add_money($bank->ask_for_a_loan($plan->necessary_expenses));
  # ソフトを開発する。(バックグラウンドでソフトハウスの所持金は減少している)
  my $soft = $sf->create($plan);
  # ソフトを販売する。(バックグラウンドでソフトハウスの所持金は上昇している)
  $sf->sell($soft);
  # 銀行に金を返す。
  $bank->repayment($sf->dec_money($plan->necessary_expenses));
}
# ソフトハウスは倒産する。
$sf->DESTROY;

むう。Perlプログラマーにしかわからんネタか。


水着女の子ちゃんたちが奮闘!!
 水着アイドルたちが、15種類の競技で対戦するアクションゲームだ。操作はタイミングよくボタンを押すなど、誰にでも遊べるシステムとなっているぞ。黄色い声、跳ねる水しぶき、そしてかわいい女の子!! 色香を振りまきながら、アツくセクシーな対戦を楽しもう。
女の子が水着で大活躍! 『SIMPLE 2000 シリーズ Vol.63 もぎたて水着! 女まみれのTHE水泳大会』

まあ、しょうがないな。お布施しよう。

[][]use Tk; Add Star

入門Perl・Tk
ナンシーウォルシュ,Nancy Walsh,石曽根信,西中芳幸
オライリー・ジャパン

Perl本を探すために部屋の発掘をしていたら、入門Perl・Tkをみつけた。めくってみたら、面白い。なんというか、開発意欲を刺激される内容と言うか。
吉里吉里吉里吉里/KAGではじめるゲーム制作―タグでノベルゲームが簡単にできる! (I・O BOOKS)とかNscripterとかも勉強してみたが、Nscripterはまだちょっとノベルに偏ってる仕様だし、吉里吉里JavaJavaScript系の仕様なので、Perlに慣れ切った自分にはちょっと面倒だったりする。
でも、Perl/Tkなら、スタンドアローンの育成ゲームとかかなりいけるんじゃないかとか思ったり。
もうちょっと読み込んでみよう。



※2005/04/22 Fri 11:07:57 に再編集されました。
※2004/10/30 Sat 17:19:54に再編集されました。

[][]本末転倒 Add Star

まずは、id:ef66様、わがままを聞いてくださってありがとうございます
勝手モジュールインストールできない人様のサーバーでも、古いバージョンPerlでも動くことを考えれば、これくらいの簡便さが一番でしょうね。
#それにコメントがいっぱい……これくらいしないと一週間後読んだ時にわからなくなってますよね。
後は無圧縮ZIP作成できればいい訳で。
興味が湧いたので、ググったところ、404 Not Foundなんてモジュールもあることがわかりました。
インストールされているPerlにArchive::Zipが含まれているかどうか調べるために、使えるモジュールリストアップする.plファイルを作り、ついでにそれをCGI化してみました。INC.cgiとでも名付けるべきかと。

#!/usr/bin/perl
use strict;
use CGI;
my $q = CGI->new;
my @modules = ();
foreach my $base_dir ( @INC ) {
  my @dir = ( undef );
  while ( @dir ) {
    my $dir = pop @dir;
    my $open = $base_dir;
    $dir and $open .= "/$dir";
    opendir ( DIR, $open );
    my @object = grep { !/^\./ } readdir ( DIR );
    closedir ( DIR );
    push @dir, map { "$dir/$_" } grep { -d "$base_dir/$dir/$_" } @object;
    push @modules, map { "$dir/$_" } grep { /\.pm$/ } @object;
  }
}
map { s/^\/// } @modules;
my %modules = map { $_=>1 } @modules;
@modules = sort keys %modules;
my $modules = {};
foreach ( @modules ) {
  my @temp = split /\//;
  my $eval = '$modules->'.join('->',map{ '{"'.$_.'"}' }@temp).'= 1;';
  eval $eval;
}
print $q->header;
print $q->start_html(-title=>'modules in this Perl.');
print hashref2list($modules);
print $q->end_html;

sub hashref2list {
  my $hashref = shift;
  my $parent = shift;
  my @keys = keys %{$hashref};
  my @file = ();
  my @dir = ();
  foreach ( @keys ) {
    if ( ref $hashref->{$_} ) {
      push @dir, $_;
    } else {
      push @file, $_;
    }
  }
  @dir = sort @dir;
  map { s/\.pm$// } @file;
  @file = sort @file;
  return $q->ul(
    $q->li([map { "$parent$_" } @file]),
    $q->li([map { $_.'::'.hashref2list($hashref->{$_}, $parent.$_.'::') } @dir])
  );
}
exit(0);

結論から言うと、入っていましたので、無圧縮ZIPを作るのに他のソフトを入れる必要もないことが判明。ああ、Perlは楽でいい。また色々試す予定です。
ありがとうございました。>id:ef66

[][]Perlexe Add Star


PerlスクリプトWindows 用の実行ファイル (exe形式) に変換するツールには次のようなものがあるようだ。

perl2exe
Lite版 $49
PerlApp
Perl Dev Kit付属 ($195)
perlcc
複雑なスクリプトは駄目みたい
[App::Packer]
開発が 2003年3月から停滞している模様
PAR
開発が活発な模様

ラクダのステーキ: PerlGUI を読むと PAR がよさそうなので、試してみた。
Perl のスクリプトを Windows 用の実行ファイル (exe形式) に変換する


やってみるかな。

[]本日の素敵ワードたち Add Star

google:人工無能 海江田
相変わらず意図が読めません。
google:ヘンゼルとグレーテル 論文
今度こそ、童話を解析した論文を探しに来たようです。
……まあ、ここにはそんなものないんですけど。
google:ロボこみ エロ漫画
むう。もちろんヒロイン鈴木ロボ子だよな。
……ギャグだかマジだかよくわからんが。
google:少年型アンドロイド
こんなものまでひっかかるようになった俺のダイアリー
google:モッコリぱんつ
こんなものまでー!
google:性欲解消法
なくてすまん。
google:蒼崎橙子 生首
うんうんうん。世の中には存外に生首ストが多いらしい。
google:カービィ ヌード
……あるのか!? いや、それ以前に嬉しいのかそれ! 萌え擬人化か!?

[][][]SIMPLE2000 Add Star

なんか、赤字とか出してる割には元気だなあ、D3 PUBLISHER
それとも、これが末期のソフトハウスを襲う駄目開発ラッシュスパイラルなのか?

# $sf はソフトハウスである。
my $sf = Soft::House->new;
# $bank は銀行である。
my $bank = Bank->new;

# ソフトハウスの所持金が尽きるまでこのループは続く。
while ( $sf->money > 0 ) {
  # 企画を立案する。ただし、開発期間は短く。
  my $plan = $sf->devise(-span=>'short');
  # その開発に必要な金額を銀行から借り、ソフトハウスの所持金に加える。
  $sf->add_money($bank->ask_for_a_loan($plan->necessary_expenses));
  # ソフトを開発する。(バックグラウンドでソフトハウスの所持金は減少している)
  my $soft = $sf->create($plan);
  # ソフトを販売する。(バックグラウンドでソフトハウスの所持金は上昇している)
  $sf->sell($soft);
  # 銀行に金を返す。
  $bank->repayment($sf->dec_money($plan->necessary_expenses));
}
# ソフトハウスは倒産する。
$sf->DESTROY;

むう。Perlプログラマーにしかわからんネタか。


水着女の子ちゃんたちが奮闘!!
 水着アイドルたちが、15種類の競技で対戦するアクションゲームだ。操作はタイミングよくボタンを押すなど、誰にでも遊べるシステムとなっているぞ。黄色い声、跳ねる水しぶき、そしてかわいい女の子!! 色香を振りまきながら、アツくセクシーな対戦を楽しもう。
女の子が水着で大活躍! 『SIMPLE 2000 シリーズ Vol.63 もぎたて水着! 女まみれのTHE水泳大会』

まあ、しょうがないな。お布施しよう。

[][]use Tk; Add Star

入門Perl・Tk
ナンシーウォルシュ,Nancy Walsh,石曽根信,西中芳幸
オライリー・ジャパン

Perl本を探すために部屋の発掘をしていたら、入門Perl・Tkをみつけた。めくってみたら、面白い。なんというか、開発意欲を刺激される内容と言うか。
吉里吉里吉里吉里/KAGではじめるゲーム制作―タグでノベルゲームが簡単にできる! (I・O BOOKS)とかNscripterとかも勉強してみたが、Nscripterはまだちょっとノベルに偏ってる仕様だし、吉里吉里JavaJavaScript系の仕様なので、Perlに慣れ切った自分にはちょっと面倒だったりする。
でも、Perl/Tkなら、スタンドアローンの育成ゲームとかかなりいけるんじゃないかとか思ったり。
もうちょっと読み込んでみよう。


※2005/04/22 Fri 11:07:57 に再編集されました。
※2004/10/30 Sat 17:19:54に再編集されました。

[][]本末転倒 Add Star

まずは、id:ef66様、わがままを聞いてくださってありがとうございます
勝手モジュールインストールできない人様のサーバーでも、古いバージョンPerlでも動くことを考えれば、これくらいの簡便さが一番でしょうね。
#それにコメントがいっぱい……これくらいしないと一週間後読んだ時にわからなくなってますよね。
後は無圧縮ZIP作成できればいい訳で。
興味が湧いたので、ググったところ、404 Not Foundなんてモジュールもあることがわかりました。
インストールされているPerlにArchive::Zipが含まれているかどうか調べるために、使えるモジュールリストアップする.plファイルを作り、ついでにそれをCGI化してみました。INC.cgiとでも名付けるべきかと。

#!/usr/bin/perl
use strict;
use CGI;
my $q = CGI->new;
my @modules = ();
foreach my $base_dir ( @INC ) {
  my @dir = ( undef );
  while ( @dir ) {
    my $dir = pop @dir;
    my $open = $base_dir;
    $dir and $open .= "/$dir";
    opendir ( DIR, $open );
    my @object = grep { !/^\./ } readdir ( DIR );
    closedir ( DIR );
    push @dir, map { "$dir/$_" } grep { -d "$base_dir/$dir/$_" } @object;
    push @modules, map { "$dir/$_" } grep { /\.pm$/ } @object;
  }
}
map { s/^\/// } @modules;
my %modules = map { $_=>1 } @modules;
@modules = sort keys %modules;
my $modules = {};
foreach ( @modules ) {
  my @temp = split /\//;
  my $eval = '$modules->'.join('->',map{ '{"'.$_.'"}' }@temp).'= 1;';
  eval $eval;
}
print $q->header;
print $q->start_html(-title=>'modules in this Perl.');
print hashref2list($modules);
print $q->end_html;

sub hashref2list {
  my $hashref = shift;
  my $parent = shift;
  my @keys = keys %{$hashref};
  my @file = ();
  my @dir = ();
  foreach ( @keys ) {
    if ( ref $hashref->{$_} ) {
      push @dir, $_;
    } else {
      push @file, $_;
    }
  }
  @dir = sort @dir;
  map { s/\.pm$// } @file;
  @file = sort @file;
  return $q->ul(
    $q->li([map { "$parent$_" } @file]),
    $q->li([map { $_.'::'.hashref2list($hashref->{$_}, $parent.$_.'::') } @dir])
  );
}
exit(0);

結論から言うと、入っていましたので、無圧縮ZIPを作るのに他のソフトを入れる必要もないことが判明。ああ、Perlは楽でいい。また色々試す予定です。
ありがとうございました。>id:ef66

[][]Perlexe Add Star


PerlスクリプトWindows 用の実行ファイル (exe形式) に変換するツールには次のようなものがあるようだ。

perl2exe
Lite版 $49
PerlApp
Perl Dev Kit付属 ($195)
perlcc
複雑なスクリプトは駄目みたい
[App::Packer]
開発が 2003年3月から停滞している模様
PAR
開発が活発な模様

ラクダのステーキ: PerlGUI を読むと PAR がよさそうなので、試してみた。
Perl のスクリプトを Windows 用の実行ファイル (exe形式) に変換する


やってみるかな。

[]本日の素敵ワードたち Add Star

google:人工無能 海江田
相変わらず意図が読めません。
google:ヘンゼルとグレーテル 論文
今度こそ、童話を解析した論文を探しに来たようです。
……まあ、ここにはそんなものないんですけど。
google:ロボこみ エロ漫画
むう。もちろんヒロイン鈴木ロボ子だよな。
……ギャグだかマジだかよくわからんが。
google:少年型アンドロイド
こんなものまでひっかかるようになった俺のダイアリー
google:モッコリぱんつ
こんなものまでー!
google:性欲解消法
なくてすまん。
google:蒼崎橙子 生首
うんうんうん。世の中には存外に生首ストが多いらしい。
google:カービィ ヌード
……あるのか!? いや、それ以前に嬉しいのかそれ! 萌え擬人化か!?

[][][]SIMPLE2000 Add Star

なんか、赤字とか出してる割には元気だなあ、D3 PUBLISHER
それとも、これが末期のソフトハウスを襲う駄目開発ラッシュスパイラルなのか?

# $sf はソフトハウスである。
my $sf = Soft::House->new;
# $bank は銀行である。
my $bank = Bank->new;

# ソフトハウスの所持金が尽きるまでこのループは続く。
while ( $sf->money > 0 ) {
  # 企画を立案する。ただし、開発期間は短く。
  my $plan = $sf->devise(-span=>'short');
  # その開発に必要な金額を銀行から借り、ソフトハウスの所持金に加える。
  $sf->add_money($bank->ask_for_a_loan($plan->necessary_expenses));
  # ソフトを開発する。(バックグラウンドでソフトハウスの所持金は減少している)
  my $soft = $sf->create($plan);
  # ソフトを販売する。(バックグラウンドでソフトハウスの所持金は上昇している)
  $sf->sell($soft);
  # 銀行に金を返す。
  $bank->repayment($sf->dec_money($plan->necessary_expenses));
}
# ソフトハウスは倒産する。
$sf->DESTROY;

むう。Perlプログラマーにしかわからんネタか。


水着女の子ちゃんたちが奮闘!!
 水着アイドルたちが、15種類の競技で対戦するアクションゲームだ。操作はタイミングよくボタンを押すなど、誰にでも遊べるシステムとなっているぞ。黄色い声、跳ねる水しぶき、そしてかわいい女の子!! 色香を振りまきながら、アツくセクシーな対戦を楽しもう。
女の子が水着で大活躍! 『SIMPLE 2000 シリーズ Vol.63 もぎたて水着! 女まみれのTHE水泳大会』

まあ、しょうがないな。お布施しよう。

[][]use Tk; Add Star

入門Perl・Tk
ナンシーウォルシュ,Nancy Walsh,石曽根信,西中芳幸
オライリー・ジャパン

Perl本を探すために部屋の発掘をしていたら、入門Perl・Tkをみつけた。めくってみたら、面白い。なんというか、開発意欲を刺激される内容と言うか。
吉里吉里吉里吉里/KAGではじめるゲーム制作―タグでノベルゲームが簡単にできる! (I・O BOOKS)とかNscripterとかも勉強してみたが、Nscripterはまだちょっとノベルに偏ってる仕様だし、吉里吉里JavaJavaScript系の仕様なので、Perlに慣れ切った自分にはちょっと面倒だったりする。
でも、Perl/Tkなら、スタンドアローンの育成ゲームとかかなりいけるんじゃないかとか思ったり。
もうちょっと読み込んでみよう。

関連商品
B00LEC66OC 映画 クレヨンしんちゃん ガチンコ! 逆襲のロボ...
バンダイビジュアル,高橋渉
ef66 ●2004/07/17 03:52
眼鏡っ子・・・良いですね。笑  新しいスタイルは FireFox(Mozilla)で表示が・・・泣
すーさん ●2004/07/17 04:44
Operaでも表示がダメです・・・
eiji8pou ●2004/07/17 09:02
とりあえず戻しました……。やはり、デフォルトが一番ですね。
eiji8pou ●2004/07/17 09:03
ef66さん、すーさん、ご指摘ありがとうございます。
4.前を表示|次を表示6.
●ウェブ検索●