タグ

perlに関するmasashisalvadorのブックマーク (53)

  • HTML::ExtractContent

    NAME HTML::ExtractContent - An HTML content extractor with scoring heuristics SYNOPSIS use HTML::ExtractContent; use LWP::UserAgent; my $agent = LWP::UserAgent->new; my $res = $agent->get('http://www.example.com/'); my $extractor = HTML::ExtractContent->new; $extractor->extract($res->decoded_content); print $extractor->as_text; DESCRIPTION HTML::ExtractContent is a module for extracting content fr

    HTML::ExtractContent
  • Perl CGIのキャッシュ環境

    mod_fastcgiとmod_fcgidは差がなくて、mod_perl/mod_speedycgiが一歩前に出てるという感じですね。worker動作(スレッドモデル)となると、対応しているのは mod_perl2 vs mod_fcgid だけ。mod_perl2 はいかんせん導入が面倒くさいので、手軽さでは mod_fcgid の方がよいのかもしれません。 格的にパフォーマンスを求めたり、高負荷時のメモリ消費量の少なさを考えると mod_perl2 on worker MPM に優る選択肢はないのですが個人では必要ないでしょう。*2 ただ、どれも Apache にモジュールを組み込まないとならないので、お手軽に高速化したい場合はSpeedyCGI(ソースコード)をオススメします。パフォーマンスも(個人で使うには)十分ですし、Apacheからは完全にcgiとして見えるので(プロセスが完

    Perl CGIのキャッシュ環境
  • Don't use base.pm, use parent.pm instead! - Islands in the byte stream (legacy)

    「使っちゃいけない標準モジュール」*1の反響を見ていると、baseが非奨励ということに驚かれた方が少なくありませんでした。そこで、baseについて補足します。 まずbase.pmのドキュメントの最初の文は以下のようになっています。 Unless you are using the fields pragma, consider this module discouraged in favor of the lighter-weight parent. (拙訳: fieldsプラグマを使用しているのでないかぎり、このモジュールは勧められない。かわりに軽量なparent.pmを使う方がよい。) fieldsプラグマは、ハッシュリファレンスのキーを固定したオブジェクトを作成するための機能ですが、あまり一般的ではないためここでは解説しません。特に理由がない限り、ここは素直に忠告に従った方がいいでし

    Don't use base.pm, use parent.pm instead! - Islands in the byte stream (legacy)
  • 多倍長整数演算の速度比較 - まめめも

    rubyperlpython の多倍長整数演算の速度を適当に比較してみました。フィボナッチ数の計算速度比較以上にどーでもいい比較です。 前置き 使用した処理系のバージョンはそれぞれ以下のとおりです。 ruby 1.9.0 (2008-01-16 revision 0) perl v5.10.0 python 3.0a2 perl は多倍長整数を扱う方法が何個かあるようなので、標準装備らしい bigint と、別途 CPAN でインストールしないといけない Math::BitInt::GMP (GMP の binding) の 2 種類を試しました。python の psyco はなんか動かなくて面倒だったので試してません。この比較にはあまり影響しないような気がしてます。僕は PerlPython は素人なので、もっと速くて美しい書き方・やり方があったら教えてください。 実験

    多倍長整数演算の速度比較 - まめめも
  • ハッシュの配列をdeep copyする - かせいさんとこ

    例えばこんなハッシュの配列の参照をコピーする場合、どうするの? my $hashArray = [ {"aaa"=>1}, {"aaa"=>2}, {"aaa"=>3}, {"aaa"=>4} ]; 先に結論 自力でやるなら、配列の中身を一個一個実体コピー もしくは、Cloneモジュールを使う use Clone qw(clone); # 自力の場合 my $hashArrayCopy5 = [map {{%$_}} @$hashArray]; # cloneモジュールを使う場合 my $hashArrayCopy7 = clone($hashArray); 実装 案1(shallow copy) これだと、shallow copy my $hashArrayCopy1 = $hashArray; 案2(shallow copy) @$〜で、配列のリファレンスを実体化(デリファレンス)でき

    ハッシュの配列をdeep copyする - かせいさんとこ
  • 生 DBI ユーザーのための DBI Cookbook (1) - Yet Another Hackadelic

    ちょっと前まで DBI で非同期アクセスなエントリが各所で上がっていましたが皆さん如何お過ごしでしょうか? さてと、、、歴史的な経緯とか歴史的な経緯とかで生 DBI 相当を使ってる方もそれなりにいるでしょう。奥さん、大事な事なんで二度言いましたよ! DBI のインターフェースってまぁそんな使いやすい物じゃないんですが、工夫次第で出来る事もあります。 ちなみにサンプルデータベースとして、MySQL Documentation - Example Databases の world データベースを使っています。 fetchall_arrayref でデータ整形 まず以下のように使ってみます。 #!/usr/bin/perl use strict; use warnings; use Data::Dump qw(dump); use DBI; use Perl6::Say; my $dbh =

    生 DBI ユーザーのための DBI Cookbook (1) - Yet Another Hackadelic
  • 第3回 DBIx::Classでデータベース操作(1) | gihyo.jp

    連載では第一線のPerlハッカーが回替わりで執筆していきます。今回はカヤックの村瀬大輔さんで、テーマはDBIx::Classです。 DBIx::Classとは DBIx::ClassはPerlのO/Rマッピングモジュールです。O/Rマッピング(Object/Relational Mapping、以下ORM)とは、オブジェクト指向言語におけるオブジェクトとリレーショナルデータベースを紐づけるしくみのことで、ORMを使用するとユーザは直感的なオブジェクト操作によってデータベースを操作できるようになります。 DBIx::ClassはPerlORMとしては現在世界で一番使われているモジュールです。日では最近データベース操作モジュールとしてより軽量なDBIx::SkinnyやData::Modelなどの注目が高まってきていますが、機能的に枯れている点や豊富にテストされている点でDBIx::Cl

    第3回 DBIx::Classでデータベース操作(1) | gihyo.jp
  • 【適当訳】Any::Moose は Deprecated です。 - tokuhirom's blog

    http://search.cpan.org/~sartak/Any-Moose-0.20/lib/Any/Moose.pm 新しいコードでは Moo を Any::Moose のかわりに使ってください。 Moo のクラス/ロールは、透過的に、そして正しく Moose にアップグレードすることができます。これは、Any::Moose より根的にいいデザインです。Mouse のメタクラスはMoose のメタクラスといいかんじには動作せんのです。 Any::Moose はよくがんばりました。まあなんかそれなりにはうごいていたけど、もうこれ以上つかわないでね :) MooX::late ってモジュールをつかうと Any::Moose から Moo への移植が楽になりますのでお試しあれ〜。 【解説】 後半にいくにつれて適当度がましています。

  • UTF8 フラグあれこれ - daily dayflower

    UTF8 フラグについてわかってるつもりだったんですが,utf8::is_utf8 considered harmful - Bulknews::Subtech - subtech を読んで混乱したので,自分なりにまとめてみました。間違いがありましたらご指摘よろしく。 まとめ スカラー変数の内部表象の状態を示すものとして UTF8 フラグというものがある スカラー変数は(リファレンス等は別として)下記のものを格納できる (A) 文字列(内部表象: UTF-8) (B) 文字列(内部表象: ISO-8859-1) (C) バイナリ列 純粋なバイナリストリーム(画像ファイル等)かもしれないし, UTF-8 octet stream かもしれないし, CP932 octet stream かもしれないし,etc, etc ... Perl は(後方互換性確保などの理由から)ISO-8859-1

    UTF8 フラグあれこれ - daily dayflower
  • 第16回 Perl内部構造の深遠に迫る(2) | gihyo.jp

    前回の(1)はこちらから。 文字化け問題 ─⁠─ Perlの文字列の実装に迫る 次のテーマは文字列です。文字化けは、プログラマの意図したエンコーディングと実際のエンコーディングが異なるときに起きる現象で、どんなプログラミング言語でも問題になります。ただPerlではv5.8.0以降、さらにテキスト文字列という概念ができたため、プログラマの意図をコードに落とす際に少し工夫が必要です。この概念を正しく理解していないと、エンコーディングが正しく見えるときでも文字化けが起きることがあるのです。そこで節では、文字化けをデバッグするという目的のもと、perlの文字列の実装に迫ります。 まず、よくある文字化けを再現するコードがリスト7です。CPANモジュールのEncode::Locale[6]をインストールしておいてください。また、ファイルはUTF-8で保存してください。 リスト7 hello-moji

    第16回 Perl内部構造の深遠に迫る(2) | gihyo.jp
  • シンボルテーブルの中身を覗いてみる - Perl入門ゼミ

    Perl › モジュール作成 › here Perlは、シンボルテーブルというものを持ち、プログラマーが、それを参照したり、変更を加えたりすることができます。Perlは、他の言語に比べて、柔軟で、高い適応力を持ちますが、その力をを生み出している機能のひとつがシンボルテーブルです。 シンボルテーブルは、%main:: という名前の単なるハッシュです。%main:: というハッシュから、実行されているスクリプトの持つすべてのサブルーチンとパッケージ変数を知ることができます。( レキシカル変数を除く ) シンボルテーブルの内容を覗いてみる # mainパッケージの内容を含むシンボルテーブル %main:: # %main:: の別名 %:: シンボルテーブルを通じて、パッケージ変数の内容を知る our $num = 1; ${$main::{num}}; 詳しい説明は、型グロブの解説で、説明しま

    シンボルテーブルの中身を覗いてみる - Perl入門ゼミ
  • naoyaのはてなダイアリー - Perl のクロージャ

    いつもお世話になってるあの人とかあの人とかが山口家の逆襲->perl-解説->クロージャというクロージャの解説ページをブックマークしてるのをきっかけに、 Perl のクロージャについて自分もちゃんと理解できてるのかというのを考えてみましたが、どうも微妙です。 クロージャについて、何でいまいち理解しきれてない感じがあるのかというと、クロージャがどういうものであるかは知ってるけど、クロージャをどういう時に使うと良いのかが具体的にあれとこれという感じで思い付かないからなのではないかと思った。 なので、Perl でクロージャを使ってる実装とかを見て、どんなときに使われるものなのかをリストアップして理解を深めてみよう..のコーナーです。 クラスにデータを保持するためのクロージャ 僕がぱっと思いついたのは Class::DBI の中で使われている Ima::DBI におけるデータベースハンドラのキャッ

    naoyaのはてなダイアリー - Perl のクロージャ
  • 意識が高まりゆき、Test::More::Hooksというモジュールかいた #perlましましブログ | ましましブログ

    先日から社内で、今年度の新卒向けにテストの講師やってくださいと仰せつかり、 別に誰かに強制されたわけではないのですが、去年までの講義資料だとチュートリアル的な感じで終始してしまったいたので、 資料をスクラッチで書き始めてしまい、しばらく苦しみが続きましたが、そこそこ体系的に知識突っ込めたような気がします。 Perl Advent Calendar 2011 Test Trackとか,tokuhiromさんのPerl テスティングハンドブック読んだりしましたし、 Perlだけじゃなくてユニットテスト全般の話をしたかったので、Junit実践入門読んだり、レガシーコード改善ガイドとか、 The RSpec Book読んだりしました。 そんな中、Perlでユニットテスト書くのってどうするのが最強なんだ?って言う疑問がすごいあって、 Test::Classが最強なんじゃないかと思ったりしたのですが、

  • cpanモジュール DBIx::ActiveRecordを作りました。 - 個人事業主のつぶやき

    perlのO/Rマッパーっていうと、DBIx::Classとか、DBIx::Skinnyとかあるけど、 DBIx::Classはデカすぎて使うには躊躇しちゃうし、 DBIx::Skinnyは小さいけど、(個人的には)そんなに使えない。 rails3のActiveRecord的なやつであんまり依存関係がないやつがいいんだよ。 ということで、それを作った。 DBIx::ActiveRecord - rails3 ActiveRecord like O/R Mapper - metacpan.org レポジトリは GitHub - toshi-saito/perl-dbix-activerecord: Rails3 ActiveRecord like O/R Mapper library for perl 依存はDBIのみ。 家と同じく、scopeベースになってる。 必要最低限の機能のみ実装し

    cpanモジュール DBIx::ActiveRecordを作りました。 - 個人事業主のつぶやき
  • WebSocket を使って Amon2 でチャットプログラムを書いてみる - はちゅにっき

    ずいぶん前ですが Amon2 が WebSocket に対応したということで、今更感のあるチャットプログラムを書いてみることに。 今更とは言いつつも社内では IRC を使うことができないので、ちょっとしたメッセージがやりとりできるものを作ってみようかなと思い、そのベースとなるようなイメージで作ってみました。 オマケで以前から使ってみたいなぁと思っていた Redis や Proclet なんかも (無駄に) 使ってみました。 適当な Heartbeat で WebSocket を維持していたり、エラー処理が適当すぎて Member の一覧が嘘つきだったり *1 と、まだまだイケてない部分ばかりですが、最近時間がなかなか取れないこともあり、とりあえず動くし晒してみようかと思います。 Twincle の名前は昔テストで Twitter Client を作ったときに押さえた ID をそのまま踏襲し

    WebSocket を使って Amon2 でチャットプログラムを書いてみる - はちゅにっき
  • 最近使ったPerlのテスト系モジュール - ゆううきブログ

    最近Perlを書いていて,便利なテスト系モジュールをいくつか使ったのでメモ. Test::Moreのsubtestメソッド Test::Mock::LWP::Conditional Test::MockObject::Extends Test::Exception Test::Mock::Guard Test::Moreのsubtestメソッド RSpecのitメソッドみたいな感じ. テストをブロックに分けてそれぞれのブロックに名前を付けることができるイメージ. use Test::More; subtest "description" => sub { # テスト書く }; Test::Mock::LWP::Conditional LWP::UserAgentのリクエストスタブ. LWP::UserAgentで任意のURLに対応するレスポンスを指定できる. my $res = HTTP:

    最近使ったPerlのテスト系モジュール - ゆううきブログ
  • Perlで単体テスト - yokkunsの日記

    Perlの単体テスト、特にMockObjectを使ったテストについての情報が少ない気がするのでまとめてみる。 前提 モジュールは、CPAN形式であると前提。雛形は、Module::Starterで作成すると良い。 テストは、Test::Perl::Criticを入れる。 インストール $ sudo cpan Module::Starter $ sudo cpan Module::Starter::PBP $ sudo cpan Test::Perl::Critic 初期セットアップ $ perl -MModule::Starter::PBP=setup モジュールの作成 $ module-starter --module=Ysm::Example $ cd Ysm-Example $ ls Build.PL Changes MANIFEST Makefile.PL README ignor

    Perlで単体テスト - yokkunsの日記
  • List::Compare

    NAME List::Compare - Compare elements of two or more lists VERSION This document refers to version 0.55 of List::Compare. This version was released August 16 2020. SYNOPSIS The bare essentials: @Llist = qw(abel abel baker camera delta edward fargo golfer); @Rlist = qw(baker camera delta delta edward fargo golfer hilton); $lc = List::Compare->new(\@Llist, \@Rlist); @intersection = $lc->get_intersec

    List::Compare
  • List::Util

    NAME List::Util - A selection of general-utility list subroutines SYNOPSIS use List::Util qw( reduce any all none notall first reductions max maxstr min minstr product sum sum0 pairs unpairs pairkeys pairvalues pairfirst pairgrep pairmap shuffle uniq uniqint uniqnum uniqstr head tail zip mesh ); DESCRIPTION List::Util contains a selection of subroutines that people have expressed would be nice to

    List::Util
  • Gungho-0.09008

    The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

    Gungho-0.09008