2011年12月22日

[Perl]三角関数と座標変換

Perlで三角関数を扱う時は
use Math::Trig;
とすれば、標準では用意されていない tan や acos、asin なども使用できるようになるし、円周率も pi という定数で参照することもできる。
また角度単位の変換関数の deg2rad や rad2deg なども用意されているので、非常に扱いが楽になる。

しかも、更に
use Math::Trig ':radial';
とすれば、座標変換関数として
  • cartesian_to_cylindrical( $x, $y, $z );
  • cartesian_to_spherical( $x, $y, $z );
  • cylindrical_to_cartesian( $r, $theta, $z );
  • cylindrical_to_spherical( $r, $theta, $z );
  • spherical_to_cartesian( $r, $theta, $phi );
  • spherical_to_cylindrical( $r, $theta, $phi );
が利用できるので、これは使わない手は無いと思う。

参考サイト
Perl(モジュール math::trig)
ラベル:Perl
posted by goblin at 13:27| Comment(0) | TrackBack(0) | Perl | このブログの読者になる | 更新情報をチェックする

2009年11月11日

[Perl][Win32]Perlでクリップボード処理

WindowsのActivePerlでの話だが、クリップボードのテキストに対しても簡単に処理するできる。

例えばHTMLの特殊文字を含む文章(ソーステキスト)をブログにアップする場合などは
use strict;
use Win32::Clipboard;

my $clip = Win32::Clipboard();
my $text = $clip->GetText()

$text =~ s/\&/&/g;
$text =~ s/\</&lt;/g;
$text =~ s/\>/&gt;/g;
$text =~ s/\"/&quot;/g;

$clip->Empty();
$clip->Set( $text );
というスクリプトを作っておいて、変換する文字を含んだテキストをコピーし、このスクリプトを実行(アイコンのダブルクリック)して、ペーストすればよい。

なおGetText()は改行コードも含んだ1行としてテキストを取得するので、1行ごとのテキストデータとしたいときは
my $text = $clip->GetText();
my @textdata = split /\r\n|\r|\n/, $text;
とすればよい。
ラベル:clipboard win32 Perl
posted by goblin at 01:25| Comment(0) | TrackBack(0) | Perl | このブログの読者になる | 更新情報をチェックする

2009年06月04日

[Perl]wperl.exeに拡張子を割り当てる

WindowsでPerlを実行すると、標準出力用やエラー出力用にコマンドウィンドウ(俗にいうDOS窓)が開いてしまう。

しかしコマンドウィンドウを開かないでPerlを実行するために perl.exe と同じフォルダに wperl.exe という実行ファイルが用意されている。

この二つの実行ファイルを使い分けるには、以下のように拡張子で区別するのが良いと思われる。
 .pl → perl.exe (コマンドウィンドウが開く)
 .plw → wperl.exe (コマンドウィンドウなし)

通常 .pl に対しては perl.exe が割り当てられているはずなので、 .plw に対しての割り当て行うには assoc コマンドと ftype コマンドを用いる。
assoc .plw=WPerl
ftype WPerl="C:\Perl\bin\perl\wperl.exe" "%1" %*

ラベル:Perl Windows
posted by goblin at 02:09| Comment(0) | TrackBack(0) | Perl | このブログの読者になる | 更新情報をチェックする

2007年11月12日

[Perl]実行しているスクリプトのパスを取得

実行しているスクリプトのパスを取得するには以下の方法で出来る。
use FindBin;
$dir = $FindBin::Bin;
※メソッドではなく変数で取得することに注意!
これを用いるとスクリプトと同じディレクトリにある設定ファイルを読み込むというような場合には重宝する。
ちなみにパスの区切り文字はWindowsであっても / になる。
posted by goblin at 01:51| Comment(0) | TrackBack(0) | Perl | このブログの読者になる | 更新情報をチェックする

2007年10月10日

[Perl]openの形式

Perlのopenだが、通常以下のような2つの引数の形式を使うことが多いが
open FH, $filename;
これよりも3つの引数の形式を使うほうがいいらしい。
open FH, $mode, $filename;

この3つの引数の形式の場合はmodeに以下のような読み込みか書き込みかを指定する。
open IN, "<", $infile;
open OUT, ">", $outfile;

しかし3つの引数の形式の文字コードなどを指定することが出来るのでより判りやすいコーディングとなる。
open IN, "<:utf8", $infile;
open IN, "<:encoding(shiftjis)", $infile;

参考サイト
404 Blog Not Found:勝手に添削 - PerlによるCSVファイルの高速集計 2の「openは3引数で」
PerlでUTF-8の文字コードを扱う
posted by goblin at 17:43| Comment(0) | TrackBack(0) | Perl | このブログの読者になる | 更新情報をチェックする

2007年01月31日

[Perl]ActivePerl 5.8.8.820がリリース

5.8系の最新として5.8.8.820がリリースされている。

ChangeLogを見るとPPM、WindowsのUnicodeまわり、その他いろいろと書いてある。

関連サイト
ASPN : ActivePerl 5.8.8
posted by goblin at 01:05| Comment(0) | TrackBack(0) | Perl | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。