使用Perl DBI Mysql获取查询中的最大行字符长度

Dan*_*ugh 1 mysql perl dbi

使用:Perl v5.10.1,MySQL 5.5.15,DBI.

我需要通过电子邮件从数据库中提供最终用户输出.他们不希望这作为附件,而是在身体中.

我想在ascii表中传递数据,并且在确定DBI是否内置函数来执行此操作时遇到问题(输出类似于从命令行查询MySQL).

或者如果我可以确定最长的行字符长度,我可以使用它来构建表.我有办法在数组中获取最大项长度,但我无法用查询结果来完成它.

my $spacer_length = (reverse sort { $a <=> $b } map { length($_) } @array)[0];
Run Code Online (Sandbox Code Playgroud)

TLP*_*TLP 5

假设有一个通用的DBI循环,你可以这样做:

use List::Util qw(max);

...
my @output;
my $max;
while (my @foo = $dbi->fetchrow_array) {
    $max = max($max // (), map length, @foo);
    push @output, \@foo;           # save data for email attachment
}
Run Code Online (Sandbox Code Playgroud)

使用"定义或"操作符//以避免undef在负值的情况下发出警告和可能的污染.