タグ

perlに関するnamikisterのブックマーク (110)

  • perl - 勝手に添削 - 相対パスを絶対パスに変更する : 404 Blog Not Found

    2010年12月28日23:30 カテゴリ perl - 勝手に添削 - 相対パスを絶対パスに変更する Perl & XML Erik T Ray / Jason McIntosh 財井一彰訳 [原著:Perl & XML] 一昔前のentryが、はてぶで引っかかっていたので。 相対パスを絶対パスに変更する | perl | 俺のメモ URIオブジェクトは直接文字列として扱える まずはこれ。何とprintされるでしょう? use 5.010; use strict; use warnings; use LWP::UserAgent; use URI; my $base = 'http://japan.cnet.com/news/business/story/0,3800104746,20416479-0,00.htm'; say URI->new_abs('/news/service/',

    perl - 勝手に添削 - 相対パスを絶対パスに変更する : 404 Blog Not Found
  • Google Docsの表計算書類をNet::Google::Spreadsheetsを使ってブラウザ抜きで読み書きする - Articles Advent Calendar 2010 Casual

    こんばんは。tumblr がサーバーダウンするとネット呼吸が出来ないotsune (Facebook - otsune) です。 jp.blogs.com|おもしろブログ記事のまとめサイトというサイトで、ネットウォッチ中に見かけた興味深いWebページのURLを美人編集長上野さんにたれ込むという趣味的行為をしているんですが。困ったことにURL集計にGoogle Docsの表計算の複数人編集機能を使ってて、1-clickどころかブラウザひらいてマウスでカチコチと気の長くなるほどメンドクサイ手順を踏まないとURLを貼れないという、CUIGUIのあいだに横たわる深くて長い天の川があったりしてシンドイわけです。世間でもよくある話ですね。 そんなわけでめんどくさいことはPerlのようなものにやらせればいいのよってことで、今日は飲み会のヒーローlopnorさんが書いたNet::Google::Spre

    Google Docsの表計算書類をNet::Google::Spreadsheetsを使ってブラウザ抜きで読み書きする - Articles Advent Calendar 2010 Casual
  • perl - AnyEventで超速分散ダウンローダー : 404 Blog Not Found

    2010年08月12日09:45 カテゴリLightweight Languages perl - AnyEventで超速分散ダウンローダー これ見てたらついムラムラと。 Perl 非同期プログラミング 初出2010.08.11; 08.12 追記time perl mirrorget.pl cpan.yml http://www.cpan.org/src/perl-5.12.1.tar.bz2 # Stage 0: checking headers Elapsed: 0.358819961547852 sec. Last-Modified: Sun, 16 May 2010 22:40:16 GMT Content-Length: 12296076 URLs: http://ftp.ring.gr.jp/pub/lang/perl/CPAN/src/perl-5.12.1.tar.bz2

    perl - AnyEventで超速分散ダウンローダー : 404 Blog Not Found
  • Perl 非同期プログラミング

    Ohotech 特盛 #10 ( http://ohotech.connpass.com/event/7517/ )で発表した資料です。

    Perl 非同期プログラミング
    namikister
    namikister 2010/08/16
    AnyEventで非同期プログラミング
  • optsでコマンドラインオプション - JPerl Advent Calendar 2009

    optsでコマンドラインオプション - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? はじめに こんにちは、mikihoshiこと ふしはらかんです。去年はadvent calendarが完成したら参加者全員に寿司をおごることにいつの間にかなっていたのに、私自身はcalendarに執筆者として参加できませんでした。今年は参加できて嬉しいです(今年もおごらないといけないようですが)。 perlでコマンドラインオプションを扱う perlは様々な用途に使われていますが、サーバ上でバッチ処理などを行なうスクリプトに使われるのも、良くある利用法の一つですね。 簡単な処理であればそれこそワンライナーで済みますが、何回も利用して、なおかつ毎回微妙に動作条件が違う、となってくるとオプション情報を引数として渡して実行した

  • Test::Declareで気持ちよくテストする - JPerl Advent Calendar 2009

    みんなテストをどうかいてる? みなさんはテストをどのように書いてますか? Test::Moreですかね? Test::Baseですかね? Test::Classですかね? perlには色々なtest用のフレームワークが存在していますが、皆さんはそれで満足していますか? 皆さんが書いたテストコードはメンテナンスしやすいですか? 私も先ほど例にあげたモジュールを使ってテストを書いてきましたがどれもしっくりきませんでした。 そこで作ったのがTest::Declareです。 Test::Declareには,以下の特徴があります。 テストコードをDSL風に(宣言的に)書く事を重点に置いている それによりテストコード自体の見やすさを向上させることができる 宣言的にテストを書く事により,一体なにを目的としたテストなのかがわかりやすくなる Test::More,Test::Deep,Test::Excep

  • Don't use DBIx::Class::UTF8Columns - JPerl Advent Calendar 2009

    Don't use DBIx::Class::UTF8Columns - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? 自分のつくったもジュールを紹介するハッカートラックということで、僕は DBIx::Class に同封されている DBIx::Class::UTF8Columns について書きます。 まず最初に、このモジュールをつかわないでください。 DBIx::Class::UTF8Columns は DBIx::Class のコアモジュールになってから、utf8 を扱う場合はこのモジュールを使うといいよという記述をいろいろなところで目にします。しかしこのモジュールがしていることを理解せずに使用すると予期せぬ不具合に悩まされるかもしれません。今日はこのモジュールを使わない方が良い理由と、その代替案を示

  • 第18回 local::lib:ふだんと違う環境でPerlを使う | gihyo.jp

    いつでも理想の環境を使えるとは限りません 「弘法筆を択ばず」ということわざもありますが、なんであれ手になじむまで使い込んだ道具を持っている人は、環境が変わってその道具が使えなくなるとやはりいらいらするものです。 Perlの場合もそう。日頃から自分の必要や興味に応じてがんがんCPANモジュールをインストールしていると、何らかの事情でまっさらに近いPerlを使わなければならなくなったとき、途方に暮れます。来のコードを書き始める前に、モジュールのインストールだけで一日潰してしまった経験をお持ちの方も少なくないことでしょう。 今回は、そんな「ふだんと違う」環境でもなるべくストレスなくPerlを使えるようにするためのモダンな努力をいくつか紹介してみます。 PERL5LIBという環境変数を活用する Perlはディストリビューションに同梱されているコアモジュールを保護するために、CPANからインストー

    第18回 local::lib:ふだんと違う環境でPerlを使う | gihyo.jp
  • #perl - $Config{usemymalloc} : 404 Blog Not Found

    2009年10月16日00:30 カテゴリLightweight Languages #perl - $Config{usemymalloc} それを返さないかは、その perl が受胎(conceive)したとき、平たく言えばどうConfigureされたかによって決まります。 Perl5 doesn't release SV's memory - SVアリーナのメモリ領域確保は一度おこなわれたら、「もう一生離さないぜ」な件 - TokuLog 改めB日記 Perl5 はメモリプールをもってる」ってのは、Perl Monger なら誰でもしってるわけですが、30MB とか領域確保したら、それはプールしないで、すぐ返すだろ JK とおもってたら、返してなかったので、それについて調べたときのメモ。perl がメモリーを返してくれるかどうかは、以下の簡単なscriptでチェックできます。 use

    #perl - $Config{usemymalloc} : 404 Blog Not Found
  • #perl - utf8::decode()ではなくEncode::decode_utf8()を使うべき理由 : 404 Blog Not Found

    2009年09月13日13:00 カテゴリLightweight Languages #perl - utf8::decode()ではなくEncode::decode_utf8()を使うべき理由 駄目です。 [を] Perl の utf8 まわりのおまじない 最近良く使うおまじない、というかイディオム。 utf8::decode($text) unless utf8::is_utf8($text); こういう場合は、Encode::decode_utf8()でないと。 以下をごらんください。 #!/usr/bin/perl use strict; use warnings; use Encode; use Devel::Peek; for my $bytes ( "\x2F", "\xC0\xAF", "\xE0\x80\xAF", "\xF0\x80\x80\xAF" ) { my $u

    #perl - utf8::decode()ではなくEncode::decode_utf8()を使うべき理由 : 404 Blog Not Found
  • 第12回 POE:「Perl萌え~」の略ではなく | gihyo.jp

    あだ名の多さは人気の証明? POEという名前にはあきれるほど多くの寓意がこじつけられています。もともとはPerl Object Environment「Perlのオブジェクト環境」の頭文字を並べたものですが、POEの公式サイトを見てみると、Edgar Allan POE「エドガー・アラン・ポー」に始まり(そう、POEは「ポエ」ではなく「ポー」(⁠ないし「ポゥ⁠」⁠)と読みます⁠)⁠、Parallel Object Executor「オブジェクトの並列処理機⁠」⁠、Pathetically Over-Engineered「涙がちょちょ切れるほど作り込みすぎた⁠」⁠、Perl Obfuscation Engine「Perl難読化エンジン⁠」⁠、Perl Objects for Events「イベント用Perlオブジェクト⁠」⁠、Persistent Object Environment「永続オ

    第12回 POE:「Perl萌え~」の略ではなく | gihyo.jp
  • perl - use CGI; use Encode; # 非英語Webプログラミング3原則 : 404 Blog Not Found

    2009年06月23日15:30 カテゴリLightweight Languages perl - use CGI; use Encode; # 非英語Webプログラミング3原則 これは、実はPerlに限らず未だに事実だったりするのですが.... Perl でフォームデータから UTF-8語文字をとりだす方法 (プログラミングの小石・大石) UTF-8 のフォームによっておくられたデータのなかから日語文字をとりだすことは,日Perl CGI プログラマならたいてい必要になることである. ところが,その方法は意外に確立されていないようにみえる. しかし、元発言の方法は先祖帰りすぎるので。 Perlプログラマー以外にも、Webプログラマーであれば有用なentryです。 PerlでWebプログラミングする場合の三原則 QueryはCGIモジュールで処理する 文字コードはEncode

    perl - use CGI; use Encode; # 非英語Webプログラミング3原則 : 404 Blog Not Found
  • パスワード設定をコードに書かない(Config::Pit) - モダンなPerl入門 - モダンなPerl入門

    パスワード設定をコードに書かないようにするには Config::Pit をつかいます。 なぜ必要なの? アカウント情報が必要なWebサービスを利用するスクリプトを作るとき、アカウントやパスワードをスクリプトのコードに直接書き込むと(ハードコーディング)、そのスクリプトがほかの人に見られてしまうことによりパスワードが漏洩してしまいます。 Config::Pitは、外部ファイルにWebサービスのアカウント情報を格納しておき、スクリプト側で必要なときに、読み出しできるようにします。これにより、スクリプト内にアカウント情報をハードコードすることがなくなり、スクリプト単体でのパスワード漏洩が防げます。 例:コードを配布しようとして、 #!/usr/bin/perl use strict; use warnings; use utf8; use Encode; use WWW::Mechanize;

  • perl - id:sfujiwaraのFilter.pmをSub::Pipeに : 404 Blog Not Found

    2009年05月22日15:30 カテゴリLightweight Languages perl - id:sfujiwaraのFilter.pmをSub::Pipeに 素敵! 演算子 | を overload して TT のフィルタみたいな記法を実装する - 酒日記 はてな支店 <?= $value | replace('x','y') | uri ?> こんな風に書けたら素敵ですよね。ということでこんなのを書いてみた。 でも、そのままではちょっと使いづらいので、その辺を直してSub::PipeとしてCodeReposにうpしておきました。 /lang/perl/Sub-Pipe/trunk - CodeRepos::Share - Trac 問題点は、以下の通り。 さすがにFilterというモジュール名はまずい。ソースフィルター系とかぶる。 直にcoderefをblessするのはちょっと

    perl - id:sfujiwaraのFilter.pmをSub::Pipeに : 404 Blog Not Found
  • perl - tnek-cgi@CodeRepos - nms-cgi 再び : 404 Blog Not Found

    2009年04月03日10:30 カテゴリLightweight Languages perl - tnek-cgi@CodeRepos - nms-cgi 再び これを見ていたたまれなくなったので。 perlでアップローダを作ったのですが、クラックを受けている様なんです。 ./up の配下にしかアップロード出来ない様にしたつもりが、その上のディレクトリに.htaccessやらi.. - 人力検索はてな /lang/perl/tnek-cgi/trunk ? CodeRepos::Share ? Trac これはいったい何かというと、 nms - web programs written by experts の日版みたいなものです。nms-cgiにもファイルアップローダーがなかったので作りました。その他の「よく使うCGI」なども、ここを起点にみんなで添削してそれを配布、という形にすれば

    perl - tnek-cgi@CodeRepos - nms-cgi 再び : 404 Blog Not Found
    namikister
    namikister 2009/04/05
    アップローダーのサンプル
  • Ajax - perlを実行するAPI : 404 Blog Not Found

    2009年03月10日22:00 カテゴリLightweight Languages Ajax - perlを実行するAPI つくっちゃいました。 「404 Blog Not Found:Ajax - Lightweight Languages を実行するAPI」に置き換えられました。 まずはこれをご覧ください。 use strict; use warnings; use YAML::Syck; use Data::Dumper; my $n=1; print "DATA[",$n++,"]:$_" for <DATA>; print Dumper(\%INC); print YAML::Syck::Dump(\%INC); use Test::More 'no_plan'; is(1,1); is(1,0); __DATA__ use this instead of STDIN like

    Ajax - perlを実行するAPI : 404 Blog Not Found
  • Perlゼミ(サンプルコードPerl入門)

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

  • IO::Capture - 標準出力をキャプチャーする - Perl入門ゼミ

    Perl › モジュール › here 標準出力を試験した場合がときどきあります。対話的なプログラミングを作成したり、print をソースコードの中で使用している関数を試験したい場合などです。 標準出力を取得するには、IO::Captureというモジュール使用します。標準出力が取得できれば、いつもどおりの自動試験を行うだけです。 IO::Captureは標準モジュールではないので、 cpan IO::Captureでインストールします。 1. 標準出力を取得する 標準出力を取得するには、IO::Capture::Stdoutモジュールを使用します。IO::Captureモジュールをインストールすると一緒についてきます。 startメソッドでキャプチャ開始、stopメソッドでキャプチャ終了です。そのあとに、readメソッドを呼び出すと、キャプチャした標準出力を取得できます。 use IO::

    IO::Capture - 標準出力をキャプチャーする - Perl入門ゼミ
  • perl - package と stash を理解する : 404 Blog Not Found

    2009年02月18日01:00 カテゴリLightweight Languages perl - package と stash を理解する 以下に触発されて。 CPAN 長いネームスペース大会 - にぽたん研究所 CPAN 階層の深いモジュール王選手権 - id:kazuhookuのメモ置き場 パッケージの階層はどこまで深く出来るか それを調べるために、以下のスクリプトを用意した。 #!/usr/local/bin/perl use strict; use warnings; use Data::Dumper; my $maxdepth = shift || 1024; my $ns = 'P'; sub dummy { 1 } print Dumper \%P::; for my $i ( 1 .. $maxdepth ) { no strict 'refs'; local *{ $

    perl - package と stash を理解する : 404 Blog Not Found
    namikister
    namikister 2009/02/23
    名前空間の階層をどれだけ深くできるか
  • Carp::Clan でエラーハンドリングのススメ

    Carp, Carp::Clan で共通のこと carp 呼び出し元の分かる warn cluck carp + stack backtrace croak 呼び出し元の分かる die confess croak + stack backtrace 但し Carp の場合は cluck や confess を明示的に使うよりも、 $ perl -MCarp=verbose target.pl という使い方でも stacktrace を得ることが出来ます。Carp::Clan の場合は、 use Carp::Clan; $Carp::Clan::Verbose = 1 if $ENV{DEBUG}; のようなフラグで判別すると良いでしょう。 Carp::Clan のススメ Carp::Clan の場合ですと、デフォルトでメッセージとファイル名、行番号だけで無く、どの package のどのサ