2

私のクライアントのために perl で小さなスクリプトを書いています。これは、データベースから特定のデータを抽出し、添付ファイルを介してこのデータを含む電子メールをクライアントに送信します。スクリプト自体は問題ではありません。問題はファイルです。標準の .csv ファイルは問題なく、スクリプトは問題なくそれを処理していると思いましたが、データを処理しているクライアントのさらなるソフトウェアには、二重引用符などの区切り記号のない .tsv ファイルが必要です。問題は、データベース データに必要な特殊文字が含まれていることです。たとえば、改行や二重引用符を含むテキストなどです。スクリプトを実行すると.tsvが作成されますが、特殊文字が台無しになるため、何らかの方法でエスケープする必要があります。残念ながら、.csvファイルのように二重引用符を使用することはできません. これに対するより良い解決策はありますか?

ありがとう。

4

1 に答える 1

2

タブを区切り文字として使用するように構成されたText ::CSVを使用します。

#!/usr/bin/env perl
use strict;
use warnings qw(all);
use Text::CSV;

my $tsv = Text::CSV->new({
    #quote_char      => undef,
    #escape_char     => undef,
    sep_char        => "\t",
    eol             => "\n",
    quote_space     => 0,
    quote_null      => 0,
});

my @line = ("column1\t", 12345, scalar localtime);
$tsv->print(\*STDOUT, \@line);
于 2012-12-08T14:17:03.577 に答える