「Perl use Sprite」の版間の差分

提供: dococo wiki
ナビゲーションに移動 検索に移動
imported>Webmaster
(ページの作成:「CSVのファイルをSQLコマンドを使って操作するためのモジュールです。<br /> 使い切っていないけど、巨大ファイルの操作ができ...」)
 
imported>Webmaster
4行目: 4行目:
 
標準モジュールでは無いので、CPANからインストールします。
 
標準モジュールでは無いので、CPANからインストールします。
 
== プログラム例 ==
 
== プログラム例 ==
 +
一例ですけど、test.dbにテキスト形式で入っているデータに対して以下のSQLを発行させて、値が帰って来るというモジュールです。(SQLが大文字小文字メチャクチャですけど、これでもコマンドが通るということを言いたいのだと思います)<br />
 +
<code>
 +
sElEcT * fRoM $database
 +
wHeRe (Years  >= 10) and
 +
          (Points >= 20) AnD
 +
          (Championships >= 1)</code>
 +
  
 
<syntaxhighlight lang="perl">
 
<syntaxhighlight lang="perl">

2017年10月22日 (日) 13:11時点における版

CSVのファイルをSQLコマンドを使って操作するためのモジュールです。
使い切っていないけど、巨大ファイルの操作ができるのか興味があったので使い方を勉強しています

インストール

標準モジュールでは無いので、CPANからインストールします。

プログラム例

一例ですけど、test.dbにテキスト形式で入っているデータに対して以下のSQLを発行させて、値が帰って来るというモジュールです。(SQLが大文字小文字メチャクチャですけど、これでもコマンドが通るということを言いたいのだと思います)
sElEcT * fRoM $database

wHeRe (Years  >= 10) and
         (Points >= 20) AnD
         (Championships >= 1)


	#厳密な構文チェックと警告表示
	use strict;
	use warnings;
	
	use Sprite;
	
	#実行中のファイルがおいてあるディレクトリまでの絶対パスを得る
	use FindBin;

	use Data::Dumper;

	##初期設定
	#$rdbを使ってデータベース操作を行います
	my $rdb = new Sprite;
	$rdb->set_os('Windows95');
	$rdb->set_db_dir($FindBin::Bin.'\\data\\');
	$rdb->set_delimiter ('-read'  => '\s{2,}|\t');#2回以上の「空白」繰り返しまたはタブにマッチ
	$rdb->set_delimiter ('-write' => '::');
	#初期設定ここまで

	my $database = "test.db";

print STDERR "Performing select ... \n";

	my $data = $rdb->sql (<<EOS);

    sElEcT * fRoM $database
    wHeRe (Years  >= 10) and
          (Points >= 20) AnD
          (Championships >= 1)


EOS