2013/09/08

ActivePerl5.12でPPMを使ってモジュールがインストールできない件

僕は自分のPcにActivePerl5.12をインストールしている。最近めっきりPerlを使う機会も減って、今更バージョンアップもめんどくさいだけなんだけど、ふとしたきっかけで2年ほど前に作成したプログラムを手直しする必要があったのでついでに主要モジュールを更新しようとPPMでアップデートしようと思ったら途中で「401 Unauthrized」のエラーが・・・・

http_proxyの設定も正しいし、何が原因だろうとモジュールが格納されている
http://code.activestate.com/ppm/
にアクセスしたらなにやら5.12のPPM Packageに鍵マークが!!

どうやら5.14と5.16は無料だけどレガシーとなってしまった5.12以前は有料サポートとなってしまったみたい。

一応、暫定の回避方法としてPPMに直接CPANなどのレポジトリーを追加してActiveState以外からモジュールを参照すればアップデートやインストールは出来るけど、ActiveStateにしかない(見つからない)モジュールについてはインストールやアップデートは現状では難しそう。

まぁPerlを5.14以上にバージョンアップすればいいんだろうけど、過去のプログラムを修正した際、Exe化出来なかったら問題だから躊躇してしまうなあ。Exe化のためだけにPDK買うのもばかげてるしね。

| | コメント (0) | トラックバック (0)

2006/07/01

【メモ】PerlでXSLTを行う

WindowsXPのPerl(5.8.8)でXMLファイルをXSLファイルを使用してXSLTしようと思って調べてみたら、XML::XSLTというモジュールはあったものの、試してみると不完全なものだった。XML::LibXSLTもあったけど、こちらもイマイチ。

ネットを検索すると、MSXMLをOLEから使えるらしい。
http://www.perl.com/pub/a/2001/04/17/msxml.html

これを参考に、PerlからMSXMLを使用してXSLTを行う簡単なモジュールもどきを作ってみた。使い方は↓のコードをc:/Perl/site/lib/Win32フォルダの下にコピーして、プログラムから読み出すだけ。

「MSXSLT.pm」をダウンロード

『呼び出し方』
use Win32::MSXSLT;

my $xslt = new Win32::MSXSLT();

# パラメータを設定する(Shift_JISでパラメータを渡したいときは明示する。省略するとUTF-8で渡す)
$xslt->addParameter("Param1","12345","Shift_JIS");
$xslt->addParameter("Param2","ABCDE","Shift_JIS");

# XSLTの実行(↓の例ではカレントにあるfoo.xmlファイルををbar.xslスタイルシートを使用して変換を実行)
my $text = $xslt->transform("foo.xml","bar.xsl");

# 結果を表示
print $text;

exit;

注)内部でJcodeモジュールを使用しているので、入っていなければインストール必要

| | コメント (8) | トラックバック (0)

2006/04/19

【メモ】ファイルのタイムスタンプを変更する

カレントディレクトリの全てのファイルのタイムスタンプを変更する

perl -MTime::Local -e "$time = timelocal(0,0,0,31,2,2006);for(<*>){utime($time,$time,$_);}"

↑の例は、2006年3月31日00:00:00の日付に変更させる。3月を"2"としていることに注意♪

注)サブディレクトリ以下のファイルも変更する場合は、File::Findを組み合わせると吉。

| | コメント (0) | トラックバック (0)

2006/02/01

久しぶりにPerl本とCDを購入

books

今回購入した本とCDは下記の通り。

・『詳解RSS』 著:水野貴明
・『SPIDERING HACKS』 著:Kevin Hemenway,Tara Calishain 訳:村上雅章
・『pearl』 歌:KOKIA

しめて1万円弱也!最近はネットで調べれば済むことも多いけど、本を購入してじっくり勉強しなければついていけないものもあります。

さて、これからKOKIAの歌をBGMに勉強しますか♪

| | コメント (0) | トラックバック (0)

2006/01/31

【Perlメモ】PerlからExcelを操作

test.xlsというファイルを開いてセルに値を追加してtest1.xlsに保管するという簡単なスクリプト(Win32::OLEの説明サンプルを少し改造したもの)。

ここから=============================================
use Win32::OLE;

#おまじない
eval {$ex = Win32::OLE->GetActiveObject('Excel.Application')};
die "Excel not installed" if $@;
unless (defined $ex) {
$ex = Win32::OLE->new('Excel.Application', sub {$_[0]->Quit;})
or die "Oops, cannot start Excel";
}

# ワークブックを開く(test.xls)
$book = $ex->Workbooks->open('c:/temp/test.xls');

# あるセルに出力(A2→foo,B2→bar)
$sheet = $book->Worksheets('Sheet1');
$sheet->Cells(2,1)->{Value} = "foo";
$sheet->Range("B2")->{Value} = "bar";

# 保存して終了(test1.xls)
$book->SaveAs( 'c:/temp/test1.xls' );
undef $book;
undef $ex;
ここまで=============================================

この記事は古いです。現在はこちらをお使いください。

| | コメント (0) | トラックバック (0)

2004/11/05

Perl Dev Kit 6.0

ActiveStateから出ているPerlの開発ツールであるPerl Dev Kit(PDK)の6.0がリリースされた。従来のPDKはWindows環境でPerlスクリプトの実行形式(EXE)ファイルを作れるPerlAppや、ActiveXコントロールを作成できるPerlCtrl、Windowsのサービスプログラムを作成できるPerlSvc等から構成されていたけど、今回はPDK Deployment ToolsとPDK Productivity Toolsに分かれて、従来のPDKはPDK Deployment Toolsに含まれ、PDK Productivity Toolsの方は、Filter Builder、Graphical Debugger、VBScript Converter 、Visual Package Manager が入るらしい。

それらを今回はPDK Pro Packとしてリリースしている。僕は以前からPDKを購入していたので早速PDK Pro Packのアップデート(セール期間中で$69.95)をしてみた。従来のものであれば、PDK Deployment Tools($59.95)だけでも良いんだけど、値段が$10しか違わないので試してみるのもいいかなと思って^^。

開発環境は以前書いたようにWZ Editor+DOS窓なんだけど、Graphical Debuggerはどれだけ使えるかな?あと、VBScript Converterだけど、Perl使える人でVBScriptが出来ない人はいないと思うし、変換がどれだけ出来るか激しく不安・・・。多分ちょっと試すだけで使わなくなる予感がします。

でも、C++とかJavaとか全く使わなくなっちゃったな。まぁ使う機会が無いからいいか。何かあったら、友人にプロもいるし♪

| | コメント (0) | トラックバック (0)

2004/11/02

【Perlメモ】ファイル名の変更とか

よく使うんだけど、直ぐにコーディングを思い出せないときの為に・・・

----

◎名前の一括変換(カレントディレクト下) ファイル名の一部にHOGEHOGEのあるものを→FUGAFUGAに置き換える
perl -e"for(<*HOGEHOGE*>) {$old=$_;s/HOGEHOGE/FUGAFUGA/;rename($old,$_);}"

ファイルのバックアップでXXXXXXX.datなどのファイルが沢山あるときにXXXXXXX..bkpとかに変更する場合に使う

----

◎カレントディレクト下のファイルを全てを小文字に変更する
perl -e"for(<*>) {$old=$_;rename($old,lc);}"

頭の悪いFTPでファイルをLinux機に送った場合に、ファイル名が大文字になってしまった場合に使用する

----

◎カレントディレクトリ下の指定した拡張子(ここでは.html)のファイル内容を表示する
perl -e"for(<*.html>){open(IN,$_);for(){print $_;}}"

内容の確認だけでなく、リダイレクトして一つのファイルとして結合したい場合にも使用できる。
ちなみに結合だけならファイル数が少ない場合はCOPY文等を使ったほうが速い♪

| | コメント (0) | トラックバック (0)

2004/11/01

Perlの開発環境

Perlでプログラミングをする上で、最近は様々な開発環境があります。フリーやシェアウェア、パッケージも含めると5〜10くらいはあるんじゃないだろうか?そんな中で僕はもっぱらActivePerl(PDK)+WZEditor+コマンドプロンプトで開発しています。

Perl4の頃から使っているので、昔からテキストエディターでソース作成+コマンドラインでエラーを確認という作業に慣れすぎてしまって、本格的なプログラマーでもないので最近の開発環境に関して食わず嫌いの傾向にあります(というか新しい開発環境の機能とか使い方を覚えるのが単に面倒なだけという噂もw)。

以前はエディターはメモ帳だったのですが、WZEditorが出てからはずっとそれを使ってます。VZの後継というのも使い始めたきっかけではあったのですが、独自のマクロで様々にカスタマイズできるのが魅力で、Ver1の頃からずっと使い続けています。現在はVer.5が出てますが、今のところ僕はまだVer.4のままです。ていうか、今更Ver.5でても欲しい機能は全部自分で環境を構築してしまって下手にいじりたくないっす。

ちなみに、僕のPerlプログラム作りの3大ポリシーは以下の3つです。

(1)基本的に機種やOS依存のコーディングをしない
(2)無理にかっこいいコーディングをせず、コメントを多く入れる
(3)必ず『use strict;』を入れる

一つ目は当たり前だけど、様々な機種やOSで使うのでSYSTEM関数を使ったり、外部コマンドに処理を投げたりするのはよほど動作環境が固定されない限り止めてます。なので、Win32関連モジュールを使ったり、メールを送信するときもsendmailコマンド等使わず、SMTPやMIME等の共通モジュールを使うようにしてます。

二つ目はPerlは省略可能な変数や様々な書き方が出来るため、通常なら数行のコーディングを1行に書くことも可能です。しかし、そうしたコーディングは作っている最中は良くても、半年とか1年後に見たときにすっかり内容を忘れているなんてことがままあります^^;コメントもその時の為と、仕様書なんて作らないのでその代わりっていう意味もあります。

三つ目はお約束です♪

でも、職業プログラマでは無いので、最近のトレンドであるオブジェクト指向とかデザインパターンなんかとはまったく無縁です。同じ理由でHTMLも3.0直前勉強を止めているので、CSSを使うよりはバリバリTABLEタグとかCENTERタグを使いまくりのコーディングをします。作成はもちろんWZEditorで♪以前、ホームページビルダーやGoLIVE等も使ってみたんだけど、ソースが美しくないし、IEとNetscapeで見栄えが変わるなどの不具合?もあったので、結局自分でコーディングをしてます。

でも、個人だと好き勝手にコーディングできるし、環境も選べるからいいけど、職業プログラマの方は無理やり決められた環境でプログラムを作成しなければいけない場合があるから大変だよね♪

| | コメント (0) | トラックバック (0)

Perlの本とか

最近はコンピューター関連の雑誌や書籍を買うことは少なくなった。大抵の知りたいことはインターネットで検索すれば見つかるし、近頃の雑誌に至っては初心者向けのものが多すぎて見る必要もないものが多くなったせいかもしれない。特にアスキー関連なんかの没落ぶりには昔読者だっただけに泣けてくるものがある(まぁ当時も記事より広告の方が多かったけど^^;)。

そんな中、久しぶりに書籍を注文した。最近Perlの勉強を怠っていたという理由もあるが、今まで簡単なメール送受信やFTPクライアントのプログラムを作ってきたけど、ちょっと別のネットワークプログラミングを作成してみようかと思っているのでその前準備の為だ。何を作ろうとしているかというと今は秘密♪

それにしても最近は様々なPerl本が出版されているね。僕がPerlを始めた当初はオライリーの「はじめてのPerl」と「プログラミングPerl」の2冊しかなくて、WebプログラミングやCGIに関する本はまったく出版されていなかったのに・・・。当時は翻訳されるのを待てなくて、下記の本を丸善の洋書コーナーで注文して買ったものです。


perlbook.JPG
Perl Cookbookは$39.95、THE PERL CD BOOKSHELFは$59.95ってなってます。

でも、本当に必要な本となると高いですよね。今日注文した本も5,000円を超えるものだし、安月給の身には微妙につらいです(その割には物欲でいろいろなものを買ってるじゃないかと友人から突込みがきそうだけどw)。まぁ一ヶ月の雑誌・本代だけで数万円を使う友人もいるので、大した額じゃないかな?

| | コメント (1) | トラックバック (0)

2004/10/15

【メモ】RDメール予約プログラムを一部変更

この間作成したRDのメール予約CGIを一部変更。リンクはこのブログにしかないはずなんだけど、何人か利用している人がいるみたいです。それはうれしいのですが、メール予約完了通知機能を「送信元アドレスへ通知」に設定している人がいるみたいで、CGI送信用に作成したメールIDに「RD-XS**からのお知らせ」っていうメール完了のお知らせが届いています^^;

まぁ、その人たちに完了通知の設定を「指定アドレス」に変更してね♪とも言えないので、CGIの方で見た目は自分自身(RDに送ったメールアドレス)がメールを出している風に見えるようヘッダーを変えました。全てのヘッダー情報を消している訳ではないので、見る人がみれば何処から送っているか一目瞭然ですが、これで「RD-XS**からのお知らせ」は届かなくなるでしょう。

あと、たまにメールが届かない場合があるみたいです。ログをみるとCGIはメールサーバに送信しているのですが、メールサーバが攻撃を受けている時があって、排除に忙しくタイムアウトしてるみたい。これはどうしようもありません;;

スパムメールを出すプログラムにも困ったものです。そのドメインごと排除してしまえば楽なんだけど、そういうわけにもいかないのが辛いところ・・・

ないしょで会社の鯖を使っているので、くれぐれも予約メールが届かなくても、置いてあるサイトには文句を言わないでね♪

| | コメント (0) | トラックバック (0)

より以前の記事一覧