タグ

perlに関するxenomaのブックマーク (20)

  • Perlスクリプトにバイナリファイル埋め込む方法 - 空繰再繰

    Perlのスクリプトのバイナリファイルをテキストで埋め込む しばらく前の話になりますが、この前に書いたGoogle App Engineでホスト名を効率よく取得する方法を考える という記事内の二個目の方法を実現するスクリプトをこの間の記事を書いた後に書いたとき、 画像ファイルをpsgiスクリプトに埋め込むということが必要になったので、そのとき調べたことを今日書いてみます。 まず、画像ファイルをテキスト、つまりバイナリファイルをテキストファイルとして表現するには、 uuencodeというフォーマットがあるらしいです。 で、Perlでバリナリファイルをこのuuencode文字列に変換するには、 #!perl use strict; use warings; my $file = shift @ARGV; open( my $fh, '<', $file ) or die "Cannot ope

    xenoma
    xenoma 2010/02/03
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
  • 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

    xenoma
    xenoma 2009/12/24
  • Proxy経由でLWP::UserAgentを使う - JPerl Advent Calendar 2009

    Proxy経由でLWP::UserAgentを使う - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? こんにちは!好きな寿司ネタは甘エビのkamipoです。 今日はProxy経由でLWP::UserAgentを使う方法を紹介したいと思います。 クローラやWeb APIなどを扱うモジュールの内部で必ずと言っていいほど使われているHTTPクライアントのLWP::UserAgentですが、世の中には色々な事情でHTTPリクエストするのにProxyを経由しなければいけない環境の人がいるんじゃないかと思います。 まず、LWPとCrypt::SSLeayの最新版をCPANからインストールしておきましょう。 % cpan LWP Crypt::SSLeay LWP::UserAgentでProxyを指定するには以下の

  • Algorithm::SVMLight をインストールして使ってみよう - JPerl Advent Calendar 2009

    Algorithm::SVMLight をインストールして使ってみよう - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? overlast(さとうとしのり)です。 僕は普段、自然言語処理技術を活用する仕事に従事しています。 Perl は「アイディアが浮かんでからコードを実行するまでの早さ」や「急で無茶な仕様変更への対応のしやすさ」などが好きで使っています。最初に Perl で実装して、後日速度が求められるようになったら、遅い部分だけ C / C++ で書き直すことが多いです。 Perl の CPAN モジュールの Author の方にはいつもお世話になっております。当にいつもどうもありがとうございます。 さて今回は、教師あり学習を用いる識別手法の一つである Support Vector Machine

  • Have Your Own Perl! - JPerl Advent Calendar 2009

    こんにちは、dankogaiです。Encode.pmのメンテナーとかしています。なのでEncodeのことでも書こうかと思ったのですが、すでにEncodeでラクラク日語処理をxaicronに書かれちゃいました。 それじゃ何書く?と思ったら、残ってましたよ。最も大事なものが。 Perlハッカーに最も必要なもの ここでなぞなぞです。Perlハッカーにとって最も必要なのは何でしょうか? Perlそのもの、ですよね。 そうなんです。どんなすばらしいPerlモジュールも、Perl体がなければ動きません。Perlはモジュールがなくてもなんとか動きますが、その逆は真ではないのです。 自分専用Perlを持つべき理由 あまりに当たり前のこの事実ですが、その一方、およそ Windows を除けばPerlは主要OSにははじめから組み込まれているのでそのことになかなか気がつきません。Perlがそこにあること、そ

    xenoma
    xenoma 2009/12/16
  • optsでコマンドラインオプション - JPerl Advent Calendar 2009

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

    xenoma
    xenoma 2009/12/10
  • Inline::x86でPerlの中に直接機械語を書く - JPerl Advent Calendar 2009

    Inline::x86でPerlの中に直接機械語を書く - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? 前置き こんにちは、id:TAKESAKOです。最近コロプラにハマるようになってきて近郊遠方の国内出張が楽しくなりました。JPerl Advent Calendar 2009 Hacker Trackも9日目ですね。そろそろPerlのソースを読むだけでは飽き足らずx86の機械語を書きたくなってきたんじゃないでしょうか。そんなわけで、今日は稚拙のInline::x86を紹介します。 題 皆さんの中にはよくx86を書く方もいらっしゃると思いますが、x86機械語を含むコードインジェクションは実行環境の設定が結構大変ですよね。Linuxのシステムコールmprotectを呼び出して実行ビットを追加で指定した

  • 最速IPアドレスマッチ研修会 - JPerl Advent Calendar 2009

    最速IPアドレスマッチ研修会 - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? もうすぐ2010年になるわけですが、携帯のサイトなどでアクセス元のIPアドレスがキャリアのIPアドレス帯域内にあるかどうかを確認したりすることがあると思います。 例えば、ローカルネットワークのアドレス(192.168.1.0/24)にマッチするかどうか $env->{REMOTE_ADDR} =~ s/^192\.168\.1\.(?:\d+)$/ なんて書くことがあると思います。ここであげたローカルのアドレスのような/24のIPアドレス帯域であれば簡単に正規表現を書くことが可能ですが、/25, /26 /23、/22などのCIDRは正規表現で表すことはなかなか難しいです。 また、携帯キャリアのアドレスであることを確認しよう

    xenoma
    xenoma 2009/12/03
  • #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
    xenoma
    xenoma 2009/10/19
  • #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
  • 疑問:mod_perl と 後置 if と my - makogの日記

    #!/usr/bin/perl use strict; use warnings; { my $flg; { my $cnt = 1 if ( $flg ); $cnt++; print "Content-type: text/plain\n\n"; print join( ', ', $cnt, $$, \$cnt ); } } 1; 上記のような CGI を mod_perl(ModPerl::Registry)上で動かすと、Apacheのプロセス毎に $cnt がカウントアップされます。 なぜでしょう??? 誰か教えてください。 $cnt はレキシカルスコープなはずですよね。スコープが外れた {} の後で $cnt を使うと怒られます。なのに、なぜかグローバル変数のように共有されてしまいます。 そもそも、my $cnt = 1 if ( $flg ); はどのように動作するのでしょう

    疑問:mod_perl と 後置 if と my - makogの日記
    xenoma
    xenoma 2009/08/28
  • 以下のperlのコードが動かない理由を教えて下さい。…

    以下のperlのコードが動かない理由を教えて下さい。 FizzBuzzのコードなのですが、$iが11,26,41,56,71,86の時にBuzzと出力されてしまいます。 なんとなく直前のループ時の$outの内容が引き継がれている気がしますが、理由がわかりません。 --- #!/usr/bin/perl use strict; use warnings; use Perl6::Say; foreach my $i (1..100) { my $out = "Fizz" if $i%3 == 0; $out .= "Buzz" if $i%5 == 0; say $out || $i; } --- なお$outの宣言を別にしたところ、正常に動作しています。 --- foreach my $i (1..100) { my $out; $out = "Fizz" if $i%3 == 0; $ou

    xenoma
    xenoma 2009/08/28
  • スクリプトの起動 - 主題のない日記

    例えば Perl 等を使ったスクリプトを書いたとする。 Windows 上でそれを起動するにはどのようにコマンド入力すればよいだろう? 例えばこんな感じだろうか。 c:\work> perl hoge.plこれを単一のコマンドとして実行したい場合にバッチファイルを作っておく方法が紹介されていた。 http://d.hatena.ne.jp/hyuki/20090821/twitter しかし、バッチファイルを作る方法が定番だったのは古い Windows でのことだ。 スクリプトの拡張子に然るべき関連付をしておけば手間をひとつ省略できる。 具体的には以下のコマンドを実行すれば拡張子 .pl がついたスクリプトは perl.exe に渡されるように設定される。 assoc .pl=PerlScript ftype PerlScript=perl.exe "%1" %*エクスプローラのフォルダオ

    スクリプトの起動 - 主題のない日記
    xenoma
    xenoma 2009/08/28
  • perl の構文に関する質問です。 このコードが何をやっているのか教えてください。…

    perl の構文に関する質問です。 このコードが何をやっているのか教えてください。 $_=3x(1E3-1),s/3/++$p%3*$p%5?7:5x$p/ge,print s/5//g 以下のコードと同じで3または5で割り切れる1000までの数を足した結果が得られることは知っていまが、それぞれの記号が何を意味するのか分かりません。 $sum=0; map {$sum += $_ if(!($_%3) || !($_%5))} 1..1000; print $sum; 最近 perl を使い始めたので良くわかっていません。 よろしくお願いします。

    xenoma
    xenoma 2009/06/30
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

    xenoma
    xenoma 2009/02/26
  • ワンライナー記号化スクリプトを書いた - すぎゃーんメモ

    何かの拍子にこの記事を見かけてしまい、衝撃を受けた。 2006-11-07 - 兼雑記 Perlってこんな変態プログラムが書けてしまうのか…!!と。 記号だけでプログラムが書けてしまうとは全然知らなかった。 何度も読み返してようやく理解した範囲では、 拡張正規表現の構文を利用して任意のコードを実行させる 文字列は文字列同士の排他的論理和をとることで生成できる ということらしい。 なので、「どの文字とどの文字の排他的論理和がどの文字になるか」を把握していれば、そこから文字列を生成することができるわけで、自分でもこうした記号プログラムが書けるのではないか?と思って、作ってみた。 任意のワンライナーを記号で表現しなおすためのスクリプト。(2/8 ちょっと修正) #!/usr/bin/perl use strict; use warnings; # 変換辞書 my $dict = &create_

    ワンライナー記号化スクリプトを書いた - すぎゃーんメモ
  • バイナリファイルを解析する

    Perlといえばテキスト処理や正規表現が得意で、バイナリを扱うような話についてはあまり聞かない印象があります。Perlが持つ関数pack/unpack等でもバイナリ処理は可能ですが、今回はData::ParseBinaryを使ってバイナリファイルを気軽に解析してみましょう。 基 ファイルからストリームを作る 解析したいファイルをData::ParseBinaryで扱えるストリームに変換します。 use Data::ParseBinary; my $stream = CreateStreamReader(File => $file_handle); 解析したい構造を定義する Struct関数で解析したい構造を定義します。Struct以下には基データ型やコンテナ型、ビット/バイトパディング型、制御構文型等を使用できます。各型に指定したラベルが解析結果として得られるハッシュのキーとなります。

    xenoma
    xenoma 2008/12/25
  • JPerl Advent Calendar 2008

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

    xenoma
    xenoma 2008/12/22
  • Higher-Order Perl

    by Mark Jason Dominus Order Higher-Order Perl online from Powell's Books Download full text here There are three versions available. You have your choice of structure or presentation, but not both. License reminder Higher-Order Perl is copyright ©2005 by Elsevier Inc. Unauthorized reproduction or distribution is absolutely forbidden. You may download the book for your personal use, but you may not

    xenoma
    xenoma 2008/12/17
    約600ページの大著が無料とな? http://blog.livedoor.jp/dankogai/archives/51150249.html より
  • 1