タグ

perlに関するcronecoのブックマーク (89)

  • ブログが続かないわけ | Web::Scraper 使い方(超入門)

    3年前にこのに出会って、僕はスクレーピングの虜になった。 おかげで正規表現をたくさん書く機会が得られたし、CPANのモジュールともたくさん触れ合うことができたし、さらに自分自身でも構造化されたHTMLを書く習慣も身についた。 ただ、やっぱり、スクレーピングは簡単ではない部分もたくさんあると思う。文字コードについても意識しなければならないし、なにより正規表現で必要な部分を抽出することそのものが結構骨のいる作業だ。HTML::TreeBuilder を使った方がいいのか、それとも正規表現だけでやったほうが楽なのか。そんなことを考慮しながらコーディングして行く。そこがスクレーピングの楽しいところでもあるのだが、そこがスクレーピングの敷居を高いものにしていることも否めない。 そんな、愛らしくもあり憎たらしくもあるスクレーピングを簡単にやってしまうのがこのモジュール、Web::Scraper だ。

    ブログが続かないわけ | Web::Scraper 使い方(超入門)
    croneco
    croneco 2015/02/03
  • 無精で短気で傲慢なプログラマ perl+DBI プログラムの鉄則 - fetchrow_arrayref を使え

    perl+DBI プログラムの鉄則 のつつき。 鉄則その3. while ( my $arr_ref = $sth->fetchrow_arrayref ){ my ($hoge, $fuga) = @$arr_ref; ... } SELECT 時は上記のように fetchrow_arrayref を使うこと。そして必ずスカラーに 代入すること。せっかく fetchrow_arrayref を使っていても while ( my $arr_ref = $sth->fetchrow_arrayref ){ print "$$arr_ref[0] $$arr_ref[1]\n"; } などと書いては台無しである。配列のインデックスで指定すると取得カラムの 増減に非常に弱い。そしてなりより、$$arr_ref[1] が何を意味するのか さっぱりわからない。 fetchrow_array は使わな

  • XML-RPCを利用したWeb API

    XML-RPCは簡単なルールなので、Webへのアクセスさえできれば、後は全てを自前で処理しても、それほどむつかしくはありません。しかしPerlにはXML-RPCを利用するためのモジュールも用意されているので、それを利用することで、より簡単にAPIが利用できるようになります。CPANにはXML-RPCを利用するためのモジュールがいくつか登録されていますが、今回はRPC::XMLモジュールを利用して、Blogger API経由でブログの記事を登録するプログラムを書いてみることにします。 Blogger APIはXML-RPCを利用して作成されたブログの記事の取得や登録を行うためのAPIの仕様です。その名のとおりもともとはBloggerというBlogサービスで使われ始めたものですが、Movable Typeなどでも利用され、標準的なAPIとなっています。なお、最近ではブログ関連のAPIとしてAt

  • 404 Blog Not Found:perl - ワンライナーの書き方入門

    2008年03月30日19:45 カテゴリLightweight Languages一日一行野郎 perl - ワンライナーの書き方入門 まあ、ruby のコマンドラインオプションって、Perl由来ですから。 Rubyでワンライナーを書く方法のまとめ まぁ、Perlもあるしあんまり需要が無いのかも知れませんが。 というわけで、Rubyistにも役立つPerlのワンライナー入門です。 基中の基 コマンドとしてのperlは、スイッチがない場合、引数はスクリプト名として扱われます。 % cat hello.pl print "Hello, world!\n"; % perl hello.pl Hello, world! % コマンドライン中の文字列をスクリプトとして解釈させるには、-eを使います。 % perl -e 'print "Hello, World!\n"' Hello, worl

    404 Blog Not Found:perl - ワンライナーの書き方入門
    croneco
    croneco 2013/11/15
  • DBI->connect 時に使う鉄板オプションを教えて! - blog.nomadscafe.jp

    perlでデータベースを使う時に誰もが必ず使うDBI。その接続時に使うconnectメソッドの第4引数に設定しているオプションがサービスによりまちまちなんだけど、だれか鉄板設定を教えてください。 僕が使うのが、 my $dbh = DBI->connect($dsn, $user, $password, { AutoCommit => 1, PrintError => 0, RaiseError => 1, ShowErrorStatement => 1, AutoInactiveDestroy => 1, }); これ。 加えて、mysqlであれば mysql_enable_utf8 => 1 mysql_auto_reconnect => 0, SQLiteだと sqlite_unicode => 1 sqlite_use_immediate_transaction => 1 を追加し

  • Perlゼミ(サンプルコードPerl入門)

    Perl入学式 全6回のPerl入門講座。東京、大阪、沖縄、札幌で開催。(東京は4月と10月スタート、それ以外は5月スタート) YAPC::Japan Perlを軸としたITに関わる全ての人のためのカンファレンス。 東京 吉祥寺.pm 五反田.pm 大阪 なにわPerl 沖縄 沖縄.pm

  • おそらくはそれさえも平凡な日々: CPANモジュールのパッケージングの歴史

    最近同僚が次々とCPAN Authorになってて良い流れだなーとか思っています。 ただ、CPANへのモジュールの上げ方がわからないとか、M::Iを使えばいいのか M::Bを使えばいいのか、それらがそもそも何やってるのか分からないという話も 聞くので、僕自身もその辺の知識を整理してアップデートしました。 とりあえず、今はModule::Buildを使っておけば良いんじゃないかと 思っていますが、そこに至る歴史的経緯をまとめてみます。 大体、以下に書いてあることに加えて、最近の動きを書いています。 Module::Build:MakeMakerの後継者を目指して PerlでCPAN形式のモジュールを配布する場合は、Makefile.PLなりBuild.PLなりを モジュール作者が用意して、それがインストールに必要なファイル類を自動生成 するという流れになっています。 既存の雛形を使うと色々ファ

    croneco
    croneco 2013/02/13
  • 「ボケて」のスケールアップとスケールアウト - ゆーすけべー日記

    オモロキで鎌団子さんと二人で開発している写真で一言ボケるWebサービス「ボケて」。 バックエンドの改修作業、それに伴うバグ等の修正を施し、やっと落ち着いて来たので、 そのことについて書いておこうと思います。 ボケてとは? 改修作業の詳細に入る前に「ボケて」とは、を紹介します。 ボケては「お題」と呼ばれる「写真」に一言「ボケ」を加えて笑いをつくりだせるWebサービスです。 ユーザーはお題写真のアップロードやそうした写真に対するボケのテキストを入力でき、 最新のものや評価されたお題とボケを見ていくことができます。 評価の高いものはやっぱり面白くて見てると吹き出しちゃうものもたくさんあります(当社比)。 開発は上記した通り鎌団子さんと二人でやっていて、 鎌団子さんがデザインやHTML絡み、 僕がバックエンドやシステム周りを行っています。 5月13日、爆発 さて、そのボケてですが、今年の「5月13

    「ボケて」のスケールアップとスケールアウト - ゆーすけべー日記
    croneco
    croneco 2012/08/24
  • Perlゼミ(サンプルコードPerl入門)

    Perl入学式 全6回のPerl入門講座。東京、大阪、沖縄、札幌で開催。(東京は4月と10月スタート、それ以外は5月スタート) YAPC::Japan Perlを軸としたITに関わる全ての人のためのカンファレンス。 東京 吉祥寺.pm 五反田.pm 大阪 なにわPerl 沖縄 沖縄.pm

    croneco
    croneco 2012/07/06
  • Perl 外部の設定ファイルを読み込む | Cepheid

    プログラム文中に記述している設定値を外部ファイルに出したい場合、doを使うと簡単に実装できる。 まず設定ファイルだが、下記のようにハッシュ形式で作成する。(ここではファイル名はparam.cfgとして保存する) { #コメントも使えます dataDir => '/aaa/bbb/ccc/', logFile => 'abc.log', users => [qw(A001 A002 A003 A004)], mail => { mobile => 'aaa@bbb.ccc', company => 'ddd@eee.fff' } } 次に、この設定ファイルを呼び出すプログラム側を作成する。 use strict; use warnings; use Data::Dumper; #設定ファイルのパス my $file = "./param.cfg"; #設定ファイル読込 my $conf =

    croneco
    croneco 2012/07/06
  • なぜ Perl で配列に対して defined を使ってはいけないのか?

    defined の挙動で相談されたのでソースコードを見てみたら、配列に対して defined を呼んでいた。 最近の Perl では配列に対して defined を使うのは非推奨である(perldata や perlfunc 参照)。 ほとんどの人が望むような判定結果は返ってこない*1。 perl -e '@a = (); print defined @a ? 1 : 0; push @a, 1; print defined @a ? 1 : 0; shift @a; print defined @a ? 1 : 0' 配列が空かどうかならスカラーコンテキストで評価するだけで OK なのだが、Perl プログラミング経験上、1度は defined を使用してしまうだろう。 ただ通常は警告が出るのですぐ気がつく。 この警告は Perl 5.6.0 以降で出る。 #!/usr/bin/perl

    なぜ Perl で配列に対して defined を使ってはいけないのか?
    croneco
    croneco 2012/07/06
  • DBIプログラミング

    Perlで、DBIモジュールを使って、データベースをアクセスするプログラムの作成方法についてまとめてあります。 データベースは、PostgreSQLを使っています。 DBI/DBDについて DBI/DBDモジュールは、Perlで各種データベースをアクセスするためのモジュールです。 DBIモジュールは、データベースに依存しない処理モジュールで、DBDモジュールは、各データベース毎に依存する処理モジュールです。 ここでは、PostgreSQLDBDモジュールを使っています。 Perlスクリプト | DBIモジュール | +--------+--------+ | | PostgreSQL対応 ORACLE対応 DBDモジュール DBDモジュール | | PostgreSQL ORACLE データベース データベース

  • 文字列の中から、特定の文字列の出現回数を数える - あくる日

    例えば、 my $str = 'はてなアンテナ、はてなブックマーク、はてなカウンター、はてなダイアリー';とあったとき、その中の『はてな』の個数を数えたい。 私だと、ぱっと思いつくのは次のコードである。 my $count = $str =~ s!はてな!はてな!g;ちなみに$strを破壊しても良い。 ふと、どういうのが普通なのか気になった。そう大した問題ではないのだけれど。

    文字列の中から、特定の文字列の出現回数を数える - あくる日
    croneco
    croneco 2012/03/10
    特定の文字列のカウント : my $count = (() = $str =~ /はてな/g);
  • Perl で url エンコードと url デコード

    Landscape トップページ | < 前の日 2003-08-30 2003-08-31 次の日 2003-09-01 > Landscape - エンジニアのメモ 2003-08-31 Perl で url エンコードと url デコード 当サイト内を Google 検索できます * Perl で url エンコードと url デコードこの記事の直リンクURL: Permlink | この記事が属するカテゴリ: [Perl] いろんなところで使いそうなのでメモ。 大崎さんの perl メモの URIエスケープ・アンエスケープする に詳しい。 http://www.din.or.jp/~ohzaki/perl.htm#JP_Escape - url encodesub url_encode($) { my $str = shift; $str =~ s/([^\w ])/'%'.unp

    croneco
    croneco 2012/03/09
  • ワタブログ : Kyoto Cabinet + Starmanで住所検索 ...を試してみた

    2011年04月15日22:43 Kyoto Cabinet + Starmanで住所検索 ...を試してみた カテゴリ Tweet miyagawaさんプロダクトのPerl製高速Webサーバ、「Starman」について調べていると、これまた高速な、しかも国産 KVS(キーと値でのみ表現される単純なデータベース)である「Tokyo Cabinet」なるものを発見。そしてなんと以下で Ajax を使った簡単な住所検索アプリを紹介してくれてるので、Mac で早速試してみました。 Tokyo Cabinet + Starmanで住所検索 - Tamashiro.orgTokyo Cabinet のサイトにいくと書いてありますが、現在では Tokyo Cabinet を凌駕するという「Kyoto Cabinet」が推奨らしいので実際にはそちらで試しました。基的にはリンク先にある通りに試しているだ

  • Net::Twitter::Searchでperl検索してみた。の続き - ducttapeの日記

    ちょい改良した、引数で文字列と取得件数を指定できるようにして、ユーザ名は色つき。DataTimeに慣れてないのでおかしいかも。 #!/usr/bin/env perl use 5.12.0; use warnings; use utf8; use Encode; use Data::Dumper; use DateTime; use DateTime::TimeZone; use DateTime::Format::DateParse; use Net::Twitter::Search; my $q = $ARGV[0] // 'perl'; my $count = $ARGV[1] // 30; my $tz = DateTime::TimeZone->new(name => 'local'); my $dt = DateTime->now(time_zone => $tz); my $

    Net::Twitter::Searchでperl検索してみた。の続き - ducttapeの日記
  • Google URL Shortener API であそ~ぶ :: 中継CGI / OAuth / AuthorizeToken & GetAccessToken

    まずcallback.cgiを用意して、GetRequestTokenで指定したパスに配置します。先ほどメモったOAuth Token Secretを盛り込んでおきます。これ以外の違いは、CGIパラメータで受け取るoauth_tokenとoauth_verifierをAuthorizationヘッダに追加することくらいです。 #!/usr/bin/perl use LWP::UserAgent; use Digest::HMAC_SHA1; use CGI; my $q = CGI->new; # OAuth Consumer Secret my $consumer_sec = 'OAuth Consumer Secret'; # OAuth Consumer Key my $consumer_key = 'OAuth Consumer Key'; # OAuth Token Secret

    croneco
    croneco 2012/03/02
  • macminiosx.com

    This domain was recently registered at Namecheap.com. Please check back later! macminiosx.com 2021 著作権. 不許複製 The Sponsored Listings displayed above are served automatically by a third party. Neither the service provider nor the domain owner maintain any relationship with the advertisers. In case of trademark issues please contact the domain owner directly (contact information can be found in whois

    macminiosx.com
  • Ubuntu に Crypt::SSLeay をインストールするときに気をつけるべきコト - おいちゃんと呼ばれています

    Perl(例えば LWP とか WWW::Mechanize とか)を用いて、HTTPS 接続(SSL 接続)しようとしたとき、 501 Protocol scheme 'https' is not supported (Crypt::SSLeay not installed) というエラーが表示されることがあります。 要は「Crypt::SSLeay をインストールしてください」ということなのですが、Ubuntu(またはその他の Debian 系のディストリビューション)の場合にはハマりどころがあったので、簡単にメモしておきます。 あらかじめ libssl-dev パッケージのインストールを いきなり結論を言っちゃうと、Ubuntu に Crypt::SSLeay をインストールするためには、あらかじめ libssl-dev パッケージをインストールしておく必要があります。Crypt::

    Ubuntu に Crypt::SSLeay をインストールするときに気をつけるべきコト - おいちゃんと呼ばれています
  • perlモジュールのinstallにcpanmを使う - Perl - @OMAKASE

    当サイトのblogのエントリーで検索ワードが多いのはCPANなんですがこの古い記事はperl5.6時代に書いた記事(多分10年近く前だと思う)で今時のperl使いにお勧めできるものではありません。 2010年2月にあの miyagawa さんが書いた cpanminus が非常に素晴らしいので CPAN::shell を捨てて App-cpanminus を積極的に利用しましょう。 と言うことでcpanに関連して新しい記事を書いてみました。 CPAN::shell の欠点 設定が面倒 動作が遅い(cpanmと比較して) 多くのメモリが必要(制約のきついレンタルサーバで使うのは無理) 依存するモジュールが多い 基root権限が必要 cpanm の利点 一枚岩のプログラムで可搬性に優れる 高速で小メモリでも動作可能 pluginで拡張できる local::lib と組み合わせるとユーザーラン

    croneco
    croneco 2012/03/01