テクノロジー こんな僕が CPAN Author (一応) になるまで。 - (゚∀゚)o彡 sasata299's blog
optsでコマンドラインオプション - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? はじめに こんにちは、mikihoshiこと ふしはらかんです。去年はadvent calendarが完成したら参加者全員に寿司をおごることにいつの間にかなっていたのに、私自身はcalendarに執筆者として参加できませんでした。今年は参加できて嬉しいです(今年もおごらないといけないようですが)。 perlでコマンドラインオプションを扱う perlは様々な用途に使われていますが、サーバ上でバッチ処理などを行なうスクリプトに使われるのも、良くある利用法の一つですね。 簡単な処理であればそれこそワンライナーで済みますが、何回も利用して、なおかつ毎回微妙に動作条件が違う、となってくるとオプション情報を引数として渡して実行した
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のインストールしなおしでもバージョン
名前¶ Data::Page - 結果集合に対するページング支援 概要¶ use Data::Page; my $page = Data::Page->new($total_entries, $entries_per_page, $current_page); print " First page: ", $page->first_page, "\n"; print " Last page: ", $page->last_page, "\n"; print "First entry on page: ", $page->first, "\n"; print " Last entry on page: ", $page->last, "\n"; 説明¶ When searching through large amounts of data, it is often the case tha
ibmのas400(現在の製品名はSystem i)で使用されるebcdicという文字コードでは全角文字がある場合、その前後にシフト文字(0E:シフトアウト,0F:シフトイン)が挿入されます。 例えば、「漢字」という全角2文字がある場合 1byte 2-5byte 4byte 0E 漢字 0F as400とのファイル交換にhulftを使用すると、先ほどのシフト文字を半角スペースに置換してくれますが、シフト文字が半角スペースに置換されずに桁ずれを起こしてしまったデータをよく見かけます。 ebcdic)テスト テスト テスト sjis)テストテストテスト #←半角スペース2文字分ずれてますEncode::CJKConstantsでは、各エンコーディングの文字コードの範囲が定義されていますが、これを利用して、ebcdic->sjis変換で失われたシフト文字分の空白を復活させることができます。 E
最速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は正規表現で表すことはなかなか難しいです。 また、携帯キャリアのアドレスであることを確認しよう
「ウェブリブログ」は 2023年1月31日 をもちましてサービス提供を終了いたしました。 2004年3月のサービス開始より19年近くもの間、沢山の皆さまにご愛用いただきましたことを心よりお礼申し上げます。今後とも、BIGLOBEをご愛顧賜りますよう、よろしくお願い申し上げます。 ※引っ越し先ブログへのリダイレクトサービスは2024年1月31日で終了いたしました。 BIGLOBEのサービス一覧
2007年04月23日01:30 カテゴリLightweight LanguagesTips perl tips - Encodeを速く使う方法 はっきり言ってこれはフェアではない。 みかログ: ErlangとPerlの速度比較 Perl側は,Encodeが遅い. Encode::from_toがinplaceでコンバートしてしまうために,直前に文字列コピーがあるのも影響しているのかも なぜなら、Encode::from_to()は速度ではなく、安全性に最適化しているから。 そもそもはじめからUTF-8、それもutf8フラグがたっている文字列にfrom_toを使うのはばかげている。 for(my $i = 0; $i < 0xffff; $i++) { my $str2 = $str; Encode::from_to($str2, "UTF-8", "Shift_JIS"); } は単に
unicodeには、ひらがなやカタカナ等の文字グループがblockとして定義されており、perl ver.5.8以降では、このblock名称による正規表現が使用できるそうです。 http://blog.livedoor.jp/sasata299/archives/51194035.html http://module.jp/blog/regex_unicode_prop.html unicodeにおけるblock名称一覧 unicodeで定義されているblockは、次のurlに記載されています。 http://web.hc.keio.ac.jp/~fujimura/lang/unicode.html http://www.unicode.org/charts/ よく使うblockは数種類に限定できますが、半角カナや機種依存にはちょっと 日本語を扱う上で使用するunicode blockは、
原稿を落としたら,すしをおごりにアメリカに行かないといけないとの噂にgkbrしているid:hakobe932です. 932は草津の932です.こんにちは. ファイルの中身をすべて読み込む処理というのは,非常によくある処理です.TIMTOWTDIが信条のPerlでは,ファイルの中身をすべて読み込む方法もたくさんあります.ここでは,どんな方法があるのか見てみましょう. 行単位で読み込む もっともシンプルなのは行入力演算子(<>)を使って行毎にデータを読み込み,それを連結する方法です. open my $fh, '<', './inputfile' or die "failed to open: $!"; my $content = ''; while (my $line = <$fh>) { $content .= $line; } print $content; もう少し工夫して後置whil
メール送信のあれこれ たとえばウェブアプリケーションでなにかの注文を受け取ったとき、あるいはシステム管理ツールでなにか異常を発見したとき、ユーザや管理者にメールを送れるようにしたい、というのはよくある要件です。昔はヒアドキュメントやテンプレートエンジンなどを使って送信したいメールを用意したあと、sendmailへのパイプを開いてメールを流し込んでいたものですが、いまはメールの作成から送信まで、すべてモジュールを使って実現できるようになっています。 とはいえ、需要が大きいだけにメール関係のモジュールは山のようにあります。ディストリビューション(パッケージ)の数だけで500を数えますし、メール関係の名前がついたモジュールは現在CPANにアップロードされている7万以上ものモジュールのほぼ1割を占めるほどです。これではどれを使えばよいのかわからないという声があがるのも当然でしょう。 そこで今回はP
perldeltaには載っていなかったが,Perl 5.10.1でバージョンオブジェクトのAPIが変わった。古いAPIも残してあるものの新しいスタイルが強く奨励されるということだ。 # old, deprecated style (< 0.75) use version; $VERSION = version->new('1.002003'); use version; $VERSION = qv('v1.2.3'); # new style use version 0.77 (); $VERSION = version->parse('1.002003'); use version 0.77 (); $VERSION = version->delcare('v1.2.3'); 実数形式のバージョン(Decimal Versions)にはparse()を,"v"が先行するv-string形
2日目のメモ。だいぶ抜けてる感じがするけどせっかくなので。 全体通して面白かったなぁ。全然技術的な話題が抑えられてないんだなぁと感じてワクワクしてしまった。全部聞けないのがもったいなさすぎる。 以下ざっくり感想。 twitter見てたらJosé Castro (cog) - How regular expressions work internallyの発表とかが面白そうだった アニメで見れる正規表現みたいなこと書いてあった。わかりやすそう。面白そう。どんなんだったんだろ。 malaさんの発表が超詰め込まれてて面白かった。けども理解追いつかなくて途中わからなかったけども。 perl6の話は前にもどこかで聞いたけどやっぱり気持ち悪いなぁ。perl知る前は$,@,%が全然意味わからなかったけど、やりだしてからは$,@,%のscalaer,array,hashってのにとても感心して使い出したキッ
京都観光で散財しすぎて貯金がないmalaです。こんにちは。キャッシュの話を書きます。 色んなキャッシュがあります データベースから引く前にmemcachedから取得したり テンプレートエンジンのレンダリング結果をキャッシュしたり 各種ウェブサービスのリクエスト結果をキャッシュしたり その他諸々CPUを食ったり時間のかかる処理をキャッシュしたり 簡単に思いつくのはこの程度ですが、スケーラブルなウェブサイトを構築するには常識的に考えてそんなのキャッシュしねーだろうというようなものをキャッシュする必要があります。 DateTimeをキャッシュしよう 同じ時刻に対するDateTimeオブジェクトをキャッシュします。 package MyDateTime; use strict; use base qw(DateTime); my %CACHE; sub now { my $class = shif
Cから継承したAPI プログラマにとって、ログの解析や作成などに含まれる日付や時刻の操作は切っても切り離せない分野のひとつです。もちろんPerlにも日付や時刻を操作するための関数は組み込まれています。 ただし、Cから継承してきたlocaltime()やgmtime()の返り値は、お世辞にもわかりやすいとはいえません。リストコンテキストで呼び出せば年月日、時分秒などの値を取り出せるとはいえ、単一の配列で受け取ると、個々の要素を使うときに直感的ではなくなりますし、明示的な名前をつけたスカラー変数を並べて受け取るのはいかにも冗長です。 use strict; use warnings; # 短いけれど非直感的 my @tm = localtime(); $tm[5] += 1900; $tm[4]++; printf "%04d-%02d-%02d %02d:%02d:%02d\n", reve
いつでも理想の環境を使えるとは限りません 「弘法筆を択ばず」ということわざもありますが、なんであれ手になじむまで使い込んだ道具を持っている人は、環境が変わってその道具が使えなくなるとやはりいらいらするものです。 Perlの場合もそう。日頃から自分の必要や興味に応じてがんがんCPANモジュールをインストールしていると、何らかの事情でまっさらに近いPerlを使わなければならなくなったとき、途方に暮れます。本来のコードを書き始める前に、モジュールのインストールだけで一日潰してしまった経験をお持ちの方も少なくないことでしょう。 今回は、そんな「ふだんと違う」環境でもなるべくストレスなくPerlを使えるようにするためのモダンな努力をいくつか紹介してみます。 PERL5LIBという環境変数を活用する Perlはディストリビューションに同梱されているコアモジュールを保護するために、CPANからインストー
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く