タグ

perlに関するpaselaのブックマーク (192)

  • Perlシグナル処理 - D-6 [相変わらず根無し]

    Perlシグナル処理 思い立ったので適当に書いてみる Perlのシグナルハンドラは%SIGグローバル変数にシグナル毎のハンドラを設定することで実現できる。例えばCtrl-CはSIGINTを発生させるので、INT用のハンドラを設定する: $SIG{ INT } = sub { warn "got SIGINT!" }; %SIGに限った事ではないのだけれども、ここでまず注意しなくてはいけないのが、%SIGはグローバル変数であること。ある関数foo()内で%SIGをいじったあとにreturnすると、foo()を呼び出したスコープでもその値は有効になってしまう。これだと自分はよくても他のモジュール等に影響を与える可能性がある。そこでまず癖としてlocal修飾子を使う癖をつけてほしい local $SIG{INT} = sub { warn "got SIGINT (OUTSIDE)" }; su

    pasela
    pasela 2009/11/27
  • utf8プラグマでfat commaを使うと左辺がdecodeされるバグ(perl-5.10.2で修正予定) - このブログはURLが変更になりました

    id:miyagawa さんからTwitterで教えてもらったネタ。Twitterだけで完結するのはもったいないのでここに書いておく。 元ネタはこちら。matsuuNet::Twitter/Net::Twitter::Lite最新版のencode/decode周りがおかしい。utf8プラグマとLWPが絡むともうなんつーかバッドノウハウのオンパレードですよ。 ( 2009-08-27 00:14:01 )miyagawa@matsuu 3.04005 でなおしたはずなんですがね。update() には decode したのを渡さないとだめです。 ( 2009-08-27 00:15:31 )miyagawa@matsuu 動作がおかしいスクリプトをみせてもらえれば対応できます。ただし Net::Twitter 3.x で直したのは、2.xでたまたま動いていた(utf8 バイトを渡せばなんとな

    pasela
    pasela 2009/11/25
  • モダンにGmailからメール送信 - hnwの日記

    補足:Email::MIMEについては「モダンPerlの世界へようこそ:第20回 Email::Sender:メールを送信する|gihyo.jp … 技術評論社」の内容とかぶってました…。この記事によればEmail::Senderも既に安定してるみたいなので、Email::Sendを使っている記事の内容はあまり意味がない気がします。 久々にPerlの話題です。「メールの送信 - モダンなPerl入門」にある通り、最近はEmail::MIME+Email::Sendでメールを送るのが流儀なんだそうです。*1 しかし、まだまだPerl使いの中でもモダンすぎるせいか、ネットを探しても利用例が少ない気がしました。特に、Gmailからメール送信したい場合にはEmail::Send::SMTPでSSLまたはTLS認証を利用することになるんですが、その実例となると皆無に近い気がしましたので、そのあたり

    モダンにGmailからメール送信 - hnwの日記
    pasela
    pasela 2009/11/24
  • 第20回 Email::Sender:メールを送信する | gihyo.jp

    メール送信のあれこれ たとえばウェブアプリケーションでなにかの注文を受け取ったとき、あるいはシステム管理ツールでなにか異常を発見したとき、ユーザや管理者にメールを送れるようにしたい、というのはよくある要件です。昔はヒアドキュメントやテンプレートエンジンなどを使って送信したいメールを用意したあと、sendmailへのパイプを開いてメールを流し込んでいたものですが、いまはメールの作成から送信まで、すべてモジュールを使って実現できるようになっています。 とはいえ、需要が大きいだけにメール関係のモジュールは山のようにあります。ディストリビューション(パッケージ)の数だけで500を数えますし、メール関係の名前がついたモジュールは現在CPANにアップロードされている7万以上ものモジュールのほぼ1割を占めるほどです。これではどれを使えばよいのかわからないという声があがるのも当然でしょう。 そこで今回はP

    第20回 Email::Sender:メールを送信する | gihyo.jp
  • 【PHP vs Perl】 昔から議論になっている事ですが、結局の所どっちがどうなのでしょう?…

    PHP vs Perl】 昔から議論になっている事ですが、結局の所どっちがどうなのでしょう? 私自身は Perl 屋ですが、PerlPHP に負けているという事も無いような気がします。 しかし、人力検索でも随分と PHP の質問が多いように感じられます。Perl はどこですか?みたいな。 言語仕様的な面からそれぞれのメリットとデメリットを述べられる方はおりますか? 平たく言えば、Perl にできて PHP にできない、またはその逆について解説して頂きたいのです。 そして面白い事に、国内のブラウザゲームの大半は何故か Perl で記述されています。 最近は PHP も増えてきた感じもするのですが、中身を見るとそのソースは Perl もどきだったりもします。 個人的には Perl で全てが済むと思うのですが、何故にして PHP を使うのでしょうか?

  • Perl5.8 の UNICODE 対応

    perl は 5.8 から Unicode(utf-8) がサポートされました.5.6 でも Unicode に対応はしていましたが,ぜんぜん使い物にならず,ようやく 5.8 でまともに使えるようになったということです.ただせっかく使えるにもかか わらず perldoc などを見てもイマイチ使い方がわからないので,独自にまと めてみたのがこのページです. 誤った書き方や勘違いをしてい ることもあるので,形式的ですがこのページの内容は無保証です. 内容 文字コード変換 perlIO jperlからの移行 UTF-8フラグ 文字コード自動判別 Unicode Standard Unicode 正規化 その他 参考資料 文字コード変換 とりあえず perl5.8 で新しく組み込まれた機能を見るために,euc-jp から shift_jis への変換スクリプトをいくつか載せます. openを利用し

  • WindowsでPerlを使うもんじゃない

     WindowsPerl 5.8/5.10を使うモンじゃない 2008.01.17 3008.02.13改版  長い間に,私はPerlを使うときに次のようなテンプレートを使うようになっていた。 #!perl # utf8でセーブ # --------------------------------------------------- # @ARGV = map { decode('cp932',$_) } @ARGV ; # --------------------------------------------------- # opendir(D,encode('cp932',"表")) ; # @nodes = map { decode('cp932',$_) } readdir(D) ; # closedir(D) ; # -----

  • Perlで順列組合せの問題を解く

    (1) 青・赤・黄・緑の4色のボールがあります。これを順番に並べる方法はいくつありますか? (2) この中から2色選んで順番に並べる方法はいくつありますか? (3) この中から2色選んで順番を考えずに組合せを作る方法はいくつありますか? こういう問題を学生の頃やらされました。nCrなどを見るとイライラするという方も多いでしょう。 最近こういう問題を解くはめになり、Perlでプログラムを書き計算する方法を調べてみました。もちろん数学の公式をネットで調べて当てはめてもいいのですが、既存のモジュールを使わない手はありません。 Math::Countingを使うMath::Countingがこういうときはぴったり。 #!/usr/bin/env perl use strict; use warnings; use Math::Counting; # (1) 4色のボールを順番に並べる(4P4) p

  • 生 DBI ユーザーのための DBI Cookbook (2) - 日向夏特殊応援部隊

    さて、まさか続編書くと思わなかったけど、d:id:ZIGOROu:20090731:1249050735 の続きです。 追記 (2009-08-15T00:30:56+09:00) ちなみに、下記で紹介してる方法は一般的には DBI の資産がたくさん合ってモゴモゴな状況をどうするか…みたいな状況の人向けです。 一般的には宜しくないです、と言うことを踏まえてどうぞ。 DBI の拡張をサブクラスを用いて行う Subclassing the DBI にちゃんと書いてあるんですが、DBI はサブクラスを作る為の環境が整っています。 論より証拠、実際の例です。 #!/usr/bin/perl use strict; use warnings; use DBI; use YAML; { package DBIx::Hideki; use base qw(DBI); package DBIx::Hide

    生 DBI ユーザーのための DBI Cookbook (2) - 日向夏特殊応援部隊
    pasela
    pasela 2009/08/18
  • 生 DBI ユーザーのための DBI Cookbook (1) - Yet Another Hackadelic

    ちょっと前まで DBI で非同期アクセスなエントリが各所で上がっていましたが皆さん如何お過ごしでしょうか? さてと、、、歴史的な経緯とか歴史的な経緯とかで生 DBI 相当を使ってる方もそれなりにいるでしょう。奥さん、大事な事なんで二度言いましたよ! DBI のインターフェースってまぁそんな使いやすい物じゃないんですが、工夫次第で出来る事もあります。 ちなみにサンプルデータベースとして、MySQL Documentation - Example Databases の world データベースを使っています。 fetchall_arrayref でデータ整形 まず以下のように使ってみます。 #!/usr/bin/perl use strict; use warnings; use Data::Dump qw(dump); use DBI; use Perl6::Say; my $dbh =

    生 DBI ユーザーのための DBI Cookbook (1) - Yet Another Hackadelic
    pasela
    pasela 2009/08/05
  • mapと非破壊 - Unknown::Programming

    http://d.hatena.ne.jp/kazukichop/20080124/1201146190 Perl分かってない - Lism.in * blog - nekoya (id:studio-m) あんまり元記事とカンケイなかったりするけど、一応。 print join "\n" , map { s/a/A/g; $_ } @list; この書き方は@listを破壊してしまう。 無論、破壊されても構わない場合はこれでもいいが、mapを使っているということは基的には破壊されたくないはずだ。(でしょでしょ?) 破壊させる目的ならば個人的にはforeachを使う方がいいと思ってる。 s/a/A/g foreach @list; print join "\n" , @list; ま、それでもmapを使って値を変更しつつ@listを破壊したくないのであれば print join "\n"

    mapと非破壊 - Unknown::Programming
    pasela
    pasela 2009/07/31
  • perl - & はいつ使うべきか : 404 Blog Not Found

    2009年07月22日21:30 カテゴリLightweight Languages perl - & はいつ使うべきか 鋭い質問です。 Perlの謎(その10)サブルーチンの呼び出し方 - 燈明日記 組み込み関数と同名のユーザ定義関数を定義したときは、どうしても『&』付きでないと呼び出せないのです。id:chaichanPaPaの主張は、以下のとおり確認できます。 #!/usr/bin/perl use strict; use warnings; sub atan2{ "atanatan"; } print atan2(1,1), "\n"; しかし、実際にはビルトイン関数を上書きしているモジュールは少なくありません。たとえばCGI::Carpはdie()やwarn()を上書きしています。 それでは、ビルトイン関数の上書きはどうやるのでしょうか?そして、一旦上書きされたビルトイン関数を呼

    perl - & はいつ使うべきか : 404 Blog Not Found
    pasela
    pasela 2009/07/22
  • perluniadvice - daily dayflower

    perluniadvice の前半部分を訳してみました。かなり意訳。 アドバイスと銘うってますが,中級者〜上級者向きです*1。 抄訳 perluniadvice Perl 付属のドキュメント perlunitut はもう読んだ?もしまだなら,そこから読み始めること :) perlunitut - perldoc.perl.org perlunifaq - perldoc.perl.org 以下にわたし(http://juerd.nl/)からのアドバイスの要約を挙げる。perlunitut には記述しなかった内容も含んでいる。 もしあなたが古い Perl を使っているのなら,最新版にアップグレードしよう もしあなたが古い CPAN モジュールを使っているのなら,最新版にアップグレードしよう 「外界」からやってくるデータはすべて decode() しよう 「外界」へ出力するデータはすべて en

    perluniadvice - daily dayflower
    pasela
    pasela 2009/07/09
  • Perl の数値変換

    Last Updated: 2002/03/26 Perl で、16進文字列、10進整数、2進文字列、バイナリー文字列の相互変換を行うための、スクリプトメモです。 特に断っていない限り、Perl 5.001 以上で動作します。 目次 16進文字列からの変換 10進整数からの変換 2進文字列からの変換 バイナリー文字列からの変換 16進文字列→10進整数への変換 hex() 関数は、16進文字列を整数値に、手軽に変換できます。 $num10 = hex("4A"); # $num10 には 74 が入る $num10 = hex("FFFFFF"); # $num10 には 16777215 が入る 余談ですが、数値リテラル中では 0x に続けて 16 進数で記述することで、数値を表すことができます。 $num10 = 0x4A; # 74 $num10 = 0xFFFFFF; # 1677

    pasela
    pasela 2009/07/08
  • ウェブリブログ:サービスは終了しました。

    「ウェブリブログ」は 2023年1月31日 をもちましてサービス提供を終了いたしました。 2004年3月のサービス開始より19年近くもの間、沢山の皆さまにご愛用いただきましたことを心よりお礼申し上げます。今後とも、BIGLOBEをご愛顧賜りますよう、よろしくお願い申し上げます。 ※引っ越し先ブログへのリダイレクトサービスは2024年1月31日で終了いたしました。 BIGLOBEのサービス一覧

    ウェブリブログ:サービスは終了しました。
  • perl - Class::Builtin 0.01 released - perlでもメソッドチェインを! : 404 Blog Not Found

    2009年06月21日19:00 カテゴリLightweight Languages perl - Class::Builtin 0.01 released - perlでもメソッドチェインを! リハビリをかねて作りました。 /lang/perl/Class-Builtin/trunk - CodeRepos::Share - Trac dankogai's p5-class-builtin at master - GitHub @CPAN (coming soon)こういうことが出来ます。 #!/usr/bin/perl -l use strict; use warnings; use Class::Builtin; binmode STDOUT, ':utf8'; my $so = OO('小飼弾'); print $so->length; print $so->decode_utf8

    perl - Class::Builtin 0.01 released - perlでもメソッドチェインを! : 404 Blog Not Found
    pasela
    pasela 2009/06/22
  • Perlにおける定数宣言(constant or Readonly or Attribute::Constant) - Unknown::Programming

    正直言いますと、個人的には定数って殆ど使わないんですよね。 昔はちょこちょこ使ってたんですが、最近は定数となりうる物は基的にYAML等外部ファイルに持たせて変更可能にすることが多いのでまったく使ってません。 ですがそれでもPerlで定数を使いたい時にはどーすんの?っていう時のために軽くここにまとめておきます。 言わずもかなPerl5.8にはconstantという定数を定義できる標準モジュールがあります。 use strict; use constant PI => 3.14; # 表示 print PI; # 3.14 # 上書きしようとすると・・・ PI = 3; # Can't modify constant item in scalar assignment とこのように上書きしようとするとエラーを吐いて死にます。 しかも実行時ではなく、コンパイル時にエラーを吐きます。 実はこのc

    Perlにおける定数宣言(constant or Readonly or Attribute::Constant) - Unknown::Programming
    pasela
    pasela 2009/06/13
  • YappoLogs: Data::Model っていう ORM みたいの CPAN にあげたよ

    Data::Model っていう ORM みたいの CPAN にあげたよ あざーす。循環参照しすぎるとバターになる。。なんでそんなに人の目を気にするのだろうと、マジレス。 早速ですが Data::Model っていう O/Rマッパー 的な物を CPAN にあげました。 Data::Model http://github.com/yappo/p5-Data-Model/tree/master 元来は MVC モデルで言う所の Model を一括でまかなえるつもりで実装していますが、ロジック処理は普通の Perl のクラスで書いちゃった方が潰しが聞くため、主にストレージを Perl のオブジェクトにマッピングする ORM 的な使い方が主流となっています。 そして、 Data::Model の多くの実装や設計などは Data::ObjectDriver を参考にして開発しました。 他にも後述して

    pasela
    pasela 2009/06/11
  • perl - Encode 中級 : 404 Blog Not Found

    2008年05月08日04:00 カテゴリLightweight Languages perl - Encode 中級 以前書いた 404 Blog Not Found:perl - Encode 入門 は大好評でしたが、 ウェブで利用される文字コード、UnicodeがASCIIを上回る--グーグルが明らかに:マーケティング - CNET Japan UnicodeがASCIIを追い越し、World Wide Web上で最も多く利用されている文字コード体系になったとGoogleのシニアインターナショナルソフトウェアアーキテクトMark Davis氏がブログで述べている。 という時代に完全対応するには、入門以上の知識がちょっと必要になります。 例えば、blogをホストしてくれているlivedoor blogの文字コードはEUC-JP。「時代はUnicode」だと言っても、こうした事情もまだ

    perl - Encode 中級 : 404 Blog Not Found
  • perl - use encoding; #は黒歴史 : 404 Blog Not Found

    2009年06月08日14:30 カテゴリLightweight Languages perl - use encoding; #は黒歴史 ぎゃあぁぁ length関数で文字列の長さを求める - perl初心者BLOG - Hatena::Group::Perl語の文字数を正確に求めたい場合、use encodingを指定する use encoding;は、jperlなど、かつて存在したL10Nされたperl用に書かれたレガシースクリプトを、モダンperlで動かすときのためのおまじないです。こういう目的で利用すべきではありません。 このあたりのことは、以前 404 Blog Not Found:perl - no encoding; # whenever possible でも書いたのですが、大事なことなのでまた書きます。 スクリプトはUTF-8で書き、use utf8;する のがモ

    perl - use encoding; #は黒歴史 : 404 Blog Not Found