テーマ:Perl

gnupack 12/13: perldoc が表示されない

現象: perldocがエラーで表示されない コマンドラインで perldoc を実行すると、次のようなエラーメッセージが表示されて、ドキュメントが表示されない     …… Ignored xxxxxxxx: unreadable     …… …
トラックバック:0
コメント:0

続きを読むread more

XML::Simpleが使うXMLパーサーの優先順位

PerlにはXML::ParserというXMLパーサーがある。 このXML::Parserを手軽に使えるようにしたモジュールがXML::Simpleである。 XML::Simpleはv1.08以降でXML::SAXをサポートした。 XML::SAXはXMLパーサーが選択可能である。 このため、XML::Simpleは、XML::…
トラックバック:0
コメント:0

続きを読むread more

PerlでDropboxの同期フォルダのパスを取得する

Dropboxにファイルを入れておくと、WindowsでもAndroidケータイでもファイルが同期できて便利だが、Dropbox上にファイルを出力したい場合、どのフォルダにがDropboxと同期しているかわかると、アプリケーションを開発するときに、何かと便利。 Dropboxの同期フォルダは%APPDATA%\Dropbox\host…
トラックバック:0
コメント:0

続きを読むread more

PerlでWindowsの特殊フォルダパスを取得する

PerlでWindowsの「ドキュメント」や「お気に入り」といった特殊フォルダのパスを取得するのはWin32:OLEを使用する。たとえば、特殊フォルダのパスを一通り取得したいときは、つぎのようにする。use strict;use warnings;use Win32::OLE;my $wsh = new Win32::OLE 'WScr…
トラックバック:0
コメント:0

続きを読むread more

PerlはglobよりもFile::Nextでファイル一覧

Perlでファイル一覧を取得するのは glob、フォルダをたどっていくならFile::Findというのが一般的なようだけれど、File::Nextのほうが簡単でわかりやすい。 Windows版のActivePerlやでは標準モジュールとして組み込まれていし、strawberry perlでもcpanからインストールできる。使い方はこん…
トラックバック:0
コメント:0

続きを読むread more

「#日本語ハッシュタグ」 Twitterが対応 (ITmedia News)

下記の件を見て、長音がUnicodeでは記号扱いになることを思い出した。 「#日本語ハッシュタグ」 Twitterが対応 (ITmedia News) - Yahoo!ニュース 従って、本ブログをハッシュタグ化しようとすると下記のような切れてしまう。 #ハードなソフトの話 → #ハ この記事では触れていないが、た…
トラックバック:0
コメント:0

続きを読むread more

Win32でXLSperlでバッチファイルからExcelファイルをつまみ食い

XLSperlはMicrosoft Excelファイルに対応のPerlである。『ミニマルperl』とか好きな人は、XLSファイルに対してワンライナーが書けるといえば、ピンとくるでしょう。 ただし、Excel 2007 のxlsxには対応していない。 たとえば、test.xls をタブ区切りのテキストファイルに変換したいときはコマンド…
トラックバック:0
コメント:0

続きを読むread more

Win32系 Perl 5.12 へPAR::Packer 1.005インストール

2010年6月5日にPAR::Packer 1.005がリリースされた。以前に書いた下記の記事の通りでは動作しなくなった。 ActivePerl 5.12.1 で PAR::Packer をバッチインストール(追記あり) なぜか、手動インストールができるのにCPANからはインストールすると下記のエラーで失敗する。 dma…
トラックバック:0
コメント:4

続きを読むread more

Strawberry Perlを関連付けするならコマンドラインかな?

最近、下記の記事が、ふと目にとまった。 にひりずむ::しんぷる:Strawberry Perlでの関連付け どうやら、Windows エクスプローラのフォルダオプションから関連付けをすると、コマンド引数がうまく渡せないかららしい。しかし、ここでレジストリエディタを使うのは大げさな気がする。 WindowsにはFTYPEというファ…
トラックバック:0
コメント:2

続きを読むread more

ポータブル版Strawberry Perl 5.12.0を簡単に設定するバッチファイル

問題: Strawbery Perl にはUSBメモリなどの外部ドライブにインストールして実行できるポータブル版が存在する。しかし、ポータブルHDDにインストールして別なPCで実行しようとすると、その都度、relocation.plを実行したり、PATH環境変数を設定する必要がある。また、ActivePerlがインストールされている環…
トラックバック:0
コメント:0

続きを読むread more

ActivePerl 5.12.1でPerl/Tkを使う

問題: ActivePerl 5.12.1 にもTkはバンドルされていないので使えない。 ppmでインストールできない ← ActiveStateで用意していない。 cpanでビルドできない ← rcのコンパイルで失敗する。ActiveStateのMinGW環境の問題。 VC++ Express 2008で試し…
トラックバック:0
コメント:2

続きを読むread more

ウェブリブログを自力でアクセス解析(3)~文字化け対策~

前回作成したプログラムを使っていたら文字化けが発生して動作がおかしくなることがわかった。 原因を調べてみるとウェブリブログのレポートHTMLファイルがShift_JISで出力されているためだった。 どうやら、レポートされている「リンク元ページURL」文字列にUTF-8が含まれているのに強制的にShift_JISに変換して適当なことに…
トラックバック:1
コメント:0

続きを読むread more

ウェブリブログを自力でアクセス解析(2)~一番参照回数の多い記事をHTMLの表で出力~

前回作成したスクリプトで生成されたタブ区切りテキストを利用して、一番、参照回数の多い記事を探してみる。 こんなときは Logparserを使うと便利。 Logparser へタブ区切りテキストをリダイレクトすれば参照回数の多い順に記事のURLを表示できる。 具体的にはコマンドライン上で次のようにすればいい。 perl webry…
トラックバック:0
コメント:0

続きを読むread more

ウェブリブログを自力でアクセス解析(1)~HTMLの表をタブ区切りテキストに~

いちおう、ウェブリブログには、アクセスレポート機能がある。しかし、検索キーワードとか解析する機能がない。 そこでせっかくアクセスログがダウンロードできるのだから活用することにした。 しかし、ダウンロードファイルはHTMLの表になっている。これは処理しにくい。 そんなわけで、タブ区切りテキストに変換するスクリプト(webrylog2…
トラックバック:1
コメント:0

続きを読むread more

PerlのプログラムにVBScriptを埋め込んで関数として使う

Windowsでログの解析やシステム管理をしていると、WMIとか使いたくなる。 WMIの使用例はVBScriptになっている。もちろん、Win32::OLEを使って書き直せば Perlでも同じことができる。 しかし、手っ取り早く仕事を片付けたいときは、そのまま使えたほうがいい。 かといってVBScriptで正規表現とか簡単なレポー…
トラックバック:0
コメント:0

続きを読むread more

Windows で Perlのglobを正しく動作させる

Windowsでも、ついついUNIX感覚でglobを使ってしまう。 パスにスペース文字が含まれてさえいなければ、まあまあ正しく動く。 たとえば、手元のWindowsで次のプログラムを実行すると、 print $_,"\n" for (); 次のような結果になる。 c:\$Recycle.Bin c:\Apache c:\a…
トラックバック:0
コメント:0

続きを読むread more

TkxまたはPerl/Tkプログラムをコマンドウィンドウなしで実行する

Perl/TkやTkxで作成したプログラムをWindowsエクスプローラからダブルクリックするとコマンドプロンプトのウィンドウが残ったままになる。しかし、最新版(Perl 5.10.0(Build 1004では)Windowsの[スタート]メニューからPerl Package Managerを実行するとコマンドウィンドウが表示されない。…
トラックバック:0
コメント:2

続きを読むread more

Windows版ActivePerlでUnicodeを正しくクリップボードにコピーする方法

Windows版ActivePerl 5.10.0 でクリップボードに正しくUnicode文字列をコピーするのは意外に難しい。 いろいろ試したが、結局、正しく動作したのはTkxを使った方法だけだった。 具体的なコーディング例は次のようになる。 ファイル名: tkx-cb-set.pl use utf8; use stric…
トラックバック:0
コメント:0

続きを読むread more

Vanilla と Strawberry の違い(Perl Win32)

あまり日本語でVanilla Perl について説明している文を見たことがないので、誤解がないようにここで解説。 世間では CPAN が簡単に使える Perl として Strawberry Perl が有名である。しかし、gcc が同時にインストールされるため CPAN が使いやすいPerl という意味では、Vanilla Per…
トラックバック:0
コメント:0

続きを読むread more

Strawberry Perl 5.10.0.1 (2008年4月版)で強化された機能

個人的に、あれやこれやで忙しかったので油断しているうちに Strawberry Perl 5.10.0.1 が4月にリリースされた。今回のバージョンでは要望も多くインストールも面倒だった次のモジュールが追加された。 Strawberry Perl のリリースノートを訳してみるとこんな感じ。 PAR のサポート(実行のみ) PPM(…
トラックバック:0
コメント:0

続きを読むread more

Win32::Codepage と Win32::Codepage::Simple

ActivePerl 5.10.0 にWin32::Codepage をインストールして使ってみたら正しい値が取得できなかった。原因はWin32::Codepageで呼んでいるWin32::LocaleでWin32::TieRegistryに動作が変だったからだった(「Win32::Locale が ActivePerl 5.10で動作…
トラックバック:0
コメント:0

続きを読むread more

Win32::Locale が ActivePerl 5.10で動作しない

Win32::Locale で get_language を実行したら、Windows XP では問題なく動作するが Windows Vista では動作しなかった。何が起きているのかデバッガで調べたら次の部分で$localeに保存される値が違っていた。     eval '  &…
トラックバック:1
コメント:0

続きを読むread more