2017年05月28日

getoptsの使い方メモ

Perlでの引数をオプションとして取得する場合
Getopt::Stdのgetoptsを使うと簡単です。
・・・がオプションの指定方法を理解しないでソースを作ると
おかしい動きになるので注意が必要です

getopts("i:o:" => \%opt);
または
getopts("i:o:" , \%opt);

この処理ではオプションとして後ろにコロンをつけたものだけ値をとるという処理になる
言い換えるとオプションを指定した場合には、「値を入れないといけない」ということである

以下のようなコマンドラインを入れる
>Perl test.pl -i -o 123

見た目上の意味としては、
-i   は引数無し
-o  は引数123

と言うように見えるが、実態の処理は
-i   は引数-o
123は無効な引数
となる
--------------------------------------
これで少々ハマリが発生
>Perl test.pl -i 123 -o 123
これは両方とも(-i -o)とも引数が有効

>Perl test.pl -i -o 123
これは片方のみ(-i)引数が有効(要素は-o)

>Perl test.pl -i -o
これは片方のみ(-i)引数が有効(要素は-o)

>Perl test.pl -i 123 -o
これは両方とも(-i -o)とも引数が有効(-iの要素は123)(-oの要素は”UNDEF”)

これらをちゃんと理解して処理してやらないと、変な引数になるので注意が必要である


posted by トシ at 15:05| Comment(0) | Perl

2017年05月01日

strawberry perl Portable

Perlを使っていろいろなことを楽しんでいるけど、こういう言語ってセットアップが難しいとかめんどくさいとかで、なかなか導入に踏み込めない人もいると思う。いままでActivePerlを使っていたけど、最近ではライセンス関係にシビアになったため、職場のパソコンにはインストールでいないルールになっている。
(要するに勝手にソフトウエアをインストールしてはいけないということ)

でも、大量のデータをEXCELやAccessでちまちま加工していたらぜんぜん効率化にならないので、インストール制限が少ないPerlを探したところ、「strawberry perl Portable」というのに出会った

「strawberry perl」だと以下の4つのバージョンがある
  • MSI installer = preferred way, requires admin privileges to install(インストールするには管理者権限が必要)
  • ZIP edition = admin privileges not required, however you need to run some post-install scripts manually after unzip(管理者権限は必要ありませんが、解凍後に手動でインストール後のスクリプトを実行する必要があります)
  • Portable edition = suitable for "perl on USB stick" (you can move/rename the perl directory and it will still work)("perl on USB stick"に適しています(perlディレクトリを移動/名前変更することはできますが、それでも動作します))
  • PDL edition = portable edition + extra PDL related modules and external libraries(ポータブルエディション+追加PDL関連モジュールと外部ライブラリ)
インストール権限が不要なPortable editionが一番楽です
posted by トシ at 21:32| Comment(0) | Perl

2013年08月14日

座標値から地域メッシュコードを計算する(1)

仕事で必要に迫られて、自力でいろいろ勉強しながらやっと解決に向けた方法が見つかったので、今後職場が変わっても考え方を流用できるようにこのサイトでまとめようと思って記録しておく。

■メッシュコードとは
詳細はWikiを参照していただければ概略は分かると思います。

計算上で出せるメッシュコードは
・1次メッシュ(80kmメッシュ)
・2次メッシュ(10kmメッシュ)
・3次メッシュ(1kmメッシュ)
・2分の1地域メッシュ(500mメッシュ)
・4分の1地域メッシュ(250mメッシュ)
・8分の1地域メッシュ(125mメッシュ)
・10分の1地域メッシュ(100mメッシュ)
の7種類になります。

なお、地域メッシュ統計の概要については総務省統計局のページに詳細な資料がありますので興味のある方は参照してください

■緯度・経度から地域メッシュ・コードを算出する方法
計算式は地域メッシュ統計の特質・沿革(PDF:1,460KB)のP13に考え方が記載されていますので、そこを参照します。

資料の抜粋は以下の通りです
2013-08-14 8-19-35.jpg
posted by トシ at 08:09| Comment(0) | Perl