‘perl’ カテゴリーのアーカイブ

[perl] ハッシュのスライスと多次元ハッシュのエミュレーション

2010年1月28日 木曜日

XML::Simpleのコードを読んでいると以下の様な表現が頻繁に出てきました。問題は8行目なのですが、ハッシュをリストコンテキストで扱っているのですが、初めて見る表現で、調べるのにも少し手こずったのでメモしておきます。

#!/usr/bin/perl
 
use Perl6::Say;
use YAML;
 
my @keys = qw(key1 key2);
my @vals = qw(val1 val2);
@dic{@keys} = @vals;   # 問題の行
say Dump \%dic;
 
# 出力は以下のようになります
# ---
# key1: val1
# key2: val2

(続きを読む…)

CoroとthreadsとForkManagerでウェブページ取得の比較をしてみた

2009年10月16日 金曜日

以前Coroで効率よくスクレイピングなどと書いたんですが、恥ずかしながら書いた時はCoroがコルーチンを意味しているとは知らず、マルチスレッドを扱うライブラリだと認識していました。もう少し理解したいという事で、以下の3つの方法で並列にHTTPリクエストを発行して、その比較を行ってみました。

  • Coroによるマルチスレッド処理
  • threadsによるマルチスレッド処理
  • ForkManagerによるマルチプロセス処理

(続きを読む…)

PadWalkerでmy変数のシンボルテーブルを取得する

2009年10月15日 木曜日

最近perlのスタッシュと言う単語を覚えました。所謂パッケージスコープのシンボルテーブルで特定のパッケージ内に定義されている関数や変数の情報を得る事が出来ます。詳細は以下のページが解り易かったです。

wakaponさんの備忘帳

さて問題は何かというと、上記ページにも書かれているように、my変数がスタッシュではなく、別のスクラッチパッドと呼ばれる領域に格納されるため、スタッシュからはアクセスできないという事です。

(続きを読む…)

perlでモジュールのimportとunimport

2009年10月15日 木曜日

perlでモジュールをインポートする時に何気なく使ってるuse Hogeですが、調べてみると少し思ってたのと違ってたので、調べた事をメモしておきます。

(続きを読む…)

[メモ] TheSchwartzのサンプルコード

2009年10月11日 日曜日

遅まきながらJobキューを使いたくて、あれこれかじっています。perlだとTheSchwartzがメジャーな雰囲気だったので試してみました。

(続きを読む…)

phpからpythonへの変換を考える

2009年9月11日 金曜日

2000行くらいのphpスクリプトをpythonに移植したいのですが、出来るだけ自動的に変換したいと思い、少し試行錯誤してみました。(単に単調に手を動かすのが嫌だという話もあります。)

  • 1. 正規表現でチャレンジ
  • 2. token_get_allでチャレンジ(字句解析結果を使う)
  • 3. phcでチャレンジ(構文解析結果を使う)

(続きを読む…)

MobstarworldをWWW::Mechanizeでオートプレイ

2009年9月4日 金曜日

MobstarworldというTwitterと連動したゲームがあります。twitterのアカウント権限を乱用しているんじゃ無いかと色々と騒がれていますが、まぁゲーム部分は普通にプレイできるんでやってみても良いかと思います。

(続きを読む…)

Coroで効率良くスクレイピング

2009年8月25日 火曜日

スクレイピング処理をしていると大量のリクエストを発行する事が多いので、サーバの応答待ち時間がもったいないと感じていたのですが、最近巷でよく目にするCoroというモジュールを調べてみた所、非同期処理が割と簡単に書けるという事で試してみました。

(続きを読む…)

pythonとperlとphpとas3とjavascriptで日時計算

2009年8月10日 月曜日

各言語でスニペットのまとめエントリ第2段は日時計算です。日時データは表現方法が様々なため、必要なデータ形式にデータを変換するのが覚えれなくてイライラしますね。そこで以下の3つの表現を相互に変換するスニペットを書きました。

  • 日時オブジェクト
  • フォーマットされた文字列
  • unixタイムスタンプ(1970-01-01 00:00:00 UTC からの経過秒数)

(続きを読む…)

pythonとperlとphpとas3とjavascriptでJSON

2009年8月9日 日曜日

扱う言語が多くなってきて、特定の処理を思い出せずにイライラする事が頻発しています。そこで自分が使う各言語でスニペット付きでまとめる事にしました。第一弾はJSONの扱いです。連想配列をJSONにencodeして、再度decodeという基本的な流れを書きました。

(続きを読む…)