タグ

ブックマーク / perl-users.jp (13)

  • Win32::APIでPerlの中に直接機械語を書いてるときのデバッグ - JPerl Advent Calendar 2009

    Win32::APIPerlの中に直接機械語を書いてるときのデバッグ - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? まえおき というわけで、Perlで機械語を埋め込む技を応用すると、ActivePerl で stdcall な通常のDLL関数だけでなく、MSVCRT.DLL に含まれる sprintf のような可変長引数の cdecl な呼び出し規約の関数も利用できます。 #!/c/perl/bin/perl use strict; use warnings; use Win32::API; #include my $EnumWindows = Win32::API->new( "user32", "EnumWindows", "NN", "N" ); my $GetProcAddress = W

  • Image::Imlib2でアイコンをクリスマス仕様に - JPerl Advent Calendar 2009

    Image::Imlib2でアイコンをクリスマス仕様に - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? ハッピーメリークリスマス!aomushi510です。好きなお寿司のネタはサーモンです! 今日はクリスマスイブということで、Image::Imlib2を使って簡単にアイコンをクリスマス仕様にしちゃいましょう! Perlで画像加工をするときに使うモジュールは、Image::Imlib2の他にもImage::MagickやImager、GD::Imageなどがあります。 yusukebeさんのエントリでは、Image::Imlib2が超絶速いそうです。Image::Imlib2すごい!ってことで早速はじめましょう。 はじめに まずはImage::Imlib2をインストールしましょう。 インストールをする前

  • Acme::Oppaiで作る癒し系エイリアス - JPerl Advent Calendar 2009

    はじめに まず、冒頭からアダルティな文字列が出てきます。苦手な人は戻って違うページを見て下さい。 世の中にはalias acotie="rm -rf ./*"などと設定されているすばらしい常識人もいらっしゃるようなので 見習って癒し系aliasを作ってみました。 インストール Acme::Oppaiモジュールのインストール sudo cpan -i Acme::Oppai .bashrcに追記 alias yappo="perl -MAcme::Oppai -e 'print Acme::Oppai->oppai('your')->oppai('soul')->oppai('message')->oppai;';" $ source ~/.bashrc $ yappo _  ∩ ( ゜∀゜)彡 your ( ゜∀゜)彡 soul ⊂彡 _  ∩ ( ゜∀゜)彡 message ( ゜∀゜)

  • Perl のローレベルエラー処理 (もしくは Errno.pm のススメ) - JPerl Advent Calendar 2009

    Perl のローレベルエラー処理 (もしくは Errno.pm のススメ) - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? 例えば、「ディレクトリが存在しなければ作成」という処理を書くことを考えてみます。 if (! -d $dir) { mkdir $dir or die "failed to create dir:$dir:$!"; } でいいしょうか? いえ、違います。これだと、-d 演算子でディレクトリの不存在を確認した後、mkdir を呼ぶまでの間に他のプロセスがディレクトリを作成してしまう可能性があります。なので、たとえば C ならば、 if (mkdir(dir) != 0 && errno != EEXIST) { fprintf(stderr, "failed to create d

  • Mac OS Xでもlocal::libをつかってCPANモジュールを入れよう - JPerl Advent Calendar 2009

    Mac OS Xでもlocal::libをつかってCPANモジュールを入れよう - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? 概要 local::libは簡単にいうとCPANモジュールをシステム標準とは違う任意のディレクトリにインストールする設定を支援してくれる便利ツールです。root権限の無いレンタルサーバーでCPANモジュールをインストールするために使われたり、Remedieのように依存CPANモジュールごとまとめて配布するのに使われたりします。 今回はMac OS Xでsudo権限を使わずにCPANモジュールをインストールするための方法を解説します。 標準のPerlのモジュールと後からインストールしたCPANモジュールを別ディレクトリに分けておけるので OSのインストールしなおしでもバージョン

    tarchan
    tarchan 2009/12/03
    otsune「local::libは簡単にいうとCPANモジュールをシステム標準とは違う任意のディレクトリにインストールする設定を支援してくれる便利ツールです。」
  • パスワード設定をコードに書かない(Config::Pit) - モダンなPerl入門 - モダンなPerl入門

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

    tarchan
    tarchan 2009/09/10
    Java版の実装はないのかな?
  • Config::PitとWeb::ScraperとPlaggerで24時間365日のゲーム監視体制

    序文 趣味のネットウォッチのために仕方が無く超便利なPerlを覚えようという感じの otsune です。そんなわけでコーディングの深い話はよくわからんので、今回はPerlとCPANを使ってネットウォッチを支援する手法について書きます。 ウォッチしたいWebページを機械的に監視できれば、あとはPlaggerなどの便利ツールを使って「メールを出す」「im.kayac.comでメッセンジャーにアラートを出す」「ピザを注文する」など好きな処理をすることが出来ます。 RSSフィードやAPIなどがあるWebサイトであれば特に苦労はしないのですが、今回取り上げるOgame.jpはウェブブラウザーゲームなので、フィードなど便利な機能はまったく存在しません。 そこでウォッチしたいWebページに対してWeb::Scraperを使ってYAMLを出力する短いスクリプトを書いてしまいます。 メールを出すなどのこまご

  • Win32::GuiTest で Windows の GUI アプリをハックしよう

    的な書き方 use strict; use warnings; use utf8; # ↑ Perl ハッカーに DIS られなくなるおまじない # Win32::GuiTest を使うおまじない use Win32::GuiTest qw(:ALL); # 日語を使えるようにするおまじない UnicodeSemantics(1); # ここで Win32::GuiTest を使う マウスを動かす use strict; use warnings; use utf8; use Win32::GuiTest qw(:ALL); # 小数点もいけちゃう sleep 関数 use Time::HiRes qw(sleep); UnicodeSemantics(1); for (my $i = 0; $i < 500; $i++) { # 10 ms 待つ sleep(0.01); # マウ

  • キャッシュしよう

    京都観光で散財しすぎて貯金がないmalaです。こんにちは。キャッシュの話を書きます。 色んなキャッシュがあります データベースから引く前にmemcachedから取得したり テンプレートエンジンのレンダリング結果をキャッシュしたり 各種ウェブサービスのリクエスト結果をキャッシュしたり その他諸々CPUったり時間のかかる処理をキャッシュしたり 簡単に思いつくのはこの程度ですが、スケーラブルなウェブサイトを構築するには常識的に考えてそんなのキャッシュしねーだろうというようなものをキャッシュする必要があります。 DateTimeをキャッシュしよう 同じ時刻に対するDateTimeオブジェクトをキャッシュします。 package MyDateTime; use strict; use base qw(DateTime); my %CACHE; sub now { my $class = shif

  • JPerl Advent Calendar 2008

    JPerl Advent Calendar 2008 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな?

  • エキスパートPerl - 変態モジュール総覧

    Perl の世界には、「変態モジュール」と呼ばれるモジュールがたくさん存在します。 これらは、モジュールの形態をとりながら、Perl の内部に踏み込み、蹂躙しているという恐ろしい存在です。 しかしながら、これらのモジュールは使いどころを間違えなければ非常に有用であり、あなたのプログラムに無限の可能性をもたらすことでしょう。 自分の足をどうやって撃ちぬくか、よく考えてからつかってください。 下記のモジュールたちは、それ自体が変態的なものもあれば、変態的なことをするときに使うモジュールもあります。 PadWalker PadWalker は変態モジュールの筆頭です。レキシカルスコープの変数を、レキシカルスコープの外から見たり書き換えたりできます。 peek_my peek_our peek_sub closed_over という4つの関数をサポートしています。 下記のようなありえない操作を可能

    tarchan
    tarchan 2008/12/08
  • http://perl-users.jp/acotie/

  • CPANライブラリ - モダンなPerl入門

    CPANモジュール入門 Perl Mongers が普段つかっているオススメの CPAN モジュールを厳選して紹介する こんなとき、どんなモジュールをつかったらいいの?という疑問に答えられるようなドキュメント(になる予定) モバイル関連のモジュールについては扱わない。量も多いから別枠で。 目次 HTTP LWP::UserAgent LWPx::ParanoidAgent Web::Scraper HTTP::Engine O/R Mapper DBIx::Class Data::ObjectDriver テンプレートエンジン Template-Toolkit HTML::Template Text::MicroMason メール 送信(Email::MIME + Email::Send) パーズ(Email::MIME) データ CSV(Text::CSV_XS) JSON(JSON.p

  • 1