Code Archive Skip to content Google About Google Privacy Terms
2008年06月06日12:00 カテゴリLightweight Languages perl/Encode - 7bit-jis != iso-2022-jp ちょちょまwww 半角カナ対応 - UnderDone(あんでるどん)の落書き IS2022JPの半角カナ対応 - perl-mongers.org WIDE系 IRCで使われている、IS2022JPの(いわゆる)半角カナにはいろいろ種類がありますが、これをPerlでコード変換しようとした場合、Encodeモジュールではコード変換に失敗してしまいます。(2008年6月6日0:20追記:Encodeモジュールでは半角カナの認識に失敗するだけで他のコードは自動認識します) それは、文字コードそのものが微妙ながら決定的に違うのです。 Encodeのマニュアルにもちゃんとこのことは書いてあります。 perldoc Encode::JP 7
2008年06月30日04:00 カテゴリLightweight LanguagesTips perl - use Carp; # warn() と die() だけじゃなくて 以下のエラー処理の方法にちょっと口を挟みたくなったので。 エラー処理を行う。 - サンプルコードによる Perl 入門 warn() vs. die() まず、warn()の使い方。エラーに対して使ってはいけません。warnはその名の通り、あくまでもエラーではなく警告です。エラーの際にはdie()を使わなければなりません。 警告とエラーの違いですが、警告は「続けて処理してもいいけど、これはあなたの意図ではないかもしれません」という場合、エラーは「このままでは処理を続けられません」という場合です。 たとえばperlの場合、抜けた引数はundefなので、数値としては0、文字列としては''として解釈されます。それらをデフ
mod_perl 環境下でやっちゃダメなものをいくつか。 exit システム関数 正確には CORE::exit ですけど、実行すると現在の Apache プロセス(nobody)が落っこちます。 当然 root の Apache は子プロセスを立ち上げなおすんで 余分なシステム負荷が掛かりますし、mod_perl のメリットである キャッシュ効果が得られない=普通のCGI実行より鈍足になるという、 なかなか致命的な結果になってしまいます(^^; これを避けるために、mod_perl 環境下では exit() 関数 が 定義されてるので、必要な場合には必ず丸括弧をつけませう。 ○ exit( 0 ); × exit 0; 同じことが、die システム関数 にも言えます。こっちは素直に 「use Carp」して「croak 関数」で代替したほうが安全だと思う。 #eval の中で CORE:
「モダンPerl」という言葉の流行 先日、国内有数のPerlハッカーである牧大輔氏が『モダンPerl入門』という書籍を刊行しました。 日本のPerlユーザーのハブサイトを目指しているperl-users.jpでも「モダンなPerl入門」と題して「古来から親しまれているPerl入門とはひと味違う、今風のPerl入門テキスト」を作ろうという動きがあります。 海の向こうでは、Perl 6の言語仕様の策定にたずさわっているクロマティック(chromatic)氏が「Modern Perl Books」というウェブサイトを開設して、「モダンPerl」についての考察を始めました。氏はその名もModern::Perlというモジュール[1]を公開して「モダンPerl」の啓蒙に努めています。 個人の主義主張に過ぎないのでしょうか? でも、この「モダンPerl」とはいったい何なのでしょうか。 字面から「今風の
2009年02月19日08:30 カテゴリLightweight Languages perl - HTMLをXMLとして扱う そのXML::Liberalが test でこけまくっていたところから旅が始まった。 ゆーすけべー日記: 壊れた Premiere (映像編集ソフト) のプロジェクトファイルが XML::Liberal (Perlモジュール) で直った ということは、なんとかして壊れたプロジェクトファイルを「well formed」な XML にすればいいじゃないのか!と思ったわけ。そこで活躍したのが「XML::Liberal」という miyagawa プロダクトな Perl モジュール。 やりたかったのは、XHTMLでないHTMLを、XML::*なモジュールで扱うこと。例えばXML::LibXMLを使えば、JavaScriptみたいな感覚でDOMを操作できるし、XML::Sim
基本的な書き方 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); # マウ
2009年02月10日01:00 カテゴリLightweight Languages perl - open my $fh, "comand |"; # はモダンじゃない モダンPerl入門 牧大輔 「モダンPerl入門」発売記念ということで、同書を補足するentryを。 同書でちょっと残念だったのが、[5.2 外部コマンドの実行]。あまりモダンではないのだ。 P. 141 system("/sbin/wget", "http://example.com"); これはいいのだが、以下がちょっとまずい。 my $output = `/bin/ls tmp`; open(my $fh, '| cat -v'); これ、何がまずいか、というと、コマンド実行の際に/bin/shを使ってしまうのだ。そのおかげでcommand < from > to 2&>1のようなリダイレクトも使えるなどの利点もあ
This domain may be for sale!
ActivePerl+PPMによるモジュールインストール方法。 Windows、Linux等にActiveState社が提供しているPerl環境「ActivePerl」では、モジュールを「PPM」というツールでインストールできます。 このPPMについてのメモを載せていきます。 PPMに何か問題があれば、CPANも試してみてください。 CPANでは、PPMではインストールできないモジュール、より新しいモジュールをインストールできることが多々あります。 CPANについては、Perlモジュール/インストール(CPAN)にまとめてあります。 コマンドラインから、下のコマンドを叩くだけです。 ppm install パッケージ名 多くのパッケージ名には、「::」または「-」が含まれますが、これはどちらを使用しても構いません。 例えば、「CGI-Lite」と「CGI::Lite」では、どちらの書式でも
現場ですぐに役立つ知識を欲するあなたに贈る珠玉のTips集。今回は、自作スクリプト内で日付を取り扱う場合などに重宝するPerlのDate::Manipモジュールを紹介します。
Perl-5.8 覚え書き Last Updated at $Date: 2005/12/04 04:00:59 $. このページは,Perl-5.8.2 を使う上で困ったことなどの覚え書きです. 日本語を含むスクリプトを書く 日本語 EUC でスクリプトを書く UTF-8 でスクリプトを書く 日本語を含むファイルを開く 連想配列で日本語を使う 日本語を含む正規表現 文字コードの自動判定 古い Perl でも実行できるように書く 未解決の問題 日本語を含むスクリプトを書く Perl-5.8.x で日本語を扱うスクリプトを書く場合,大きく2通りの方法があります. 日本語 EUC でスクリプトを書く. UTF-8 でスクリプトを書く. どちらの方法でも, (1)ファイル入出力, (2)データベースアクセス, (3)プロセス間通信の3つに気をつけて, 明示的にバイト列を文字列に変換したり,また逆
前回のエントリ 「Perlで日付・時間操作 - DateTime モジュールの使い方」で書いたとおり、とっても便利なDateTimeモジュールですが、強いて難点をあげるとすれば、必要な依存モジュールが多いこと = インストールが面倒くさい事かと個人的には思います。shell と make コマンドが使える環境ならば、"$ perl -MCPAN -e 'install DateTime' " で自動インストールしちゃえるのですが、これができない状況: telnet 禁止の環境で cgi 作りたい場合 (無料ホームページサービス等)(顧客のサーバ環境での開発で、クライアントに信用されていない状況とか) サーバの保守・セキュリティ体制がうんちゃらで make コマンドの利用が規制されている場合 (出くわした経験あり) こんな状況下だと、とたんにDateTimeモジュールを利用する事は難しくなっ
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
CPANモジュールを、SSHを使わずにローカル環境にインストールして、Movable Typeで使用する方法を、とりあえず「Digest::SHA1」を例として紹介します。 まず、cgi-bin配下に任意のフォルダ(たとえば「cpanmake」)を作って、そこにDigestとDigest::SHA1のTar.gzファイルをアップロードします。 同じフォルダに、「SSHが使えないサーバーでUNIXコマンドを使う方法」からCommand Scriptをダウンロードして、cgiファイル(cs.cgi)をアップします。 パーミッションを755(705)にして、cgiにアクセスします。 # tar zxf Digest-1.15.tar.gz と打って、ファイルを解凍したら、出来上がったフォルダの中にcgiファイルを移動させ、 # cd Digest-1.10 # perl Makefile.PL
often find unexpected finds among the things they leave behind. Used to warn against rushing ahead
目次 Perlの概要 なにか なにか バージョン ラクダ画像とPerl 環境別インストール 基礎的なperldocコマンド 変数 スカラー(文字列・数値) 配列 ハッシュ リファレンス 条件分岐 if / elsif / else ループ foreach while デバッグ手法 print warn Data::Dumper YAML XXX ファイル操作 open() IO::File Path::Class stat() / -f / -d / -e / -x サブルーチン プロトタイプ 正規表現 メタキャラクター キャラクターセット データ tie Storable Encode 入出力の考え方 ワンライナー データベース DBI mysql PostgreSQL SQLite オブジェクト bless モジュール CPAN 各OSでのCPANのつかいかた WindowsでCPAN
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く