使用: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)
假设有一个通用的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在负值的情况下发出警告和可能的污染.