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

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

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

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

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

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

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

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

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

wakaponさんの備忘帳

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

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

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

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

Continue reading “MobstarworldをWWW::Mechanizeでオートプレイ”