作者giacch (小a)
看板Perl
标题Re: [问题] 关於长字串文字排版
时间Wed Mar 31 01:57:11 2010
※ 引述《ForeverT (全家好神)》之铭言:
: 感谢
: 好用的一招 学起来
: 但字数是未知的
: 格式是固定的
: 长字串可能会被削去
: 短字串可能空格太多
: 又该如何解呢?
: 希望能依据最长字串做向右或向左对齐
: 谢谢
chomp(@TMP=<DATA>);
foreach(@TMP) {
foreach( map { length } split(/ /) ) {
$i++;
$LEN{$i}=$_ if($LEN{$i} < $_);
} undef $i;
}
foreach(@TMP) {
foreach( split(/ /) ) {
$i++ and print ' '; # 分隔
# printf("%-$LEN{$i}s", $_); # 靠左对齐
# printf("%$LEN{$i}s", $_); # 靠右对齐
# 置中对齐
$LEN{0}=int(($LEN{$i}-length)/2); printf("%$LEN{0}s",undef);
$LEN{0}=$LEN{$i}-$LEN{0}; printf("%-$LEN{0}s", $_);
# 置中对齐
} undef $i; print "\n";
}
__DATA__
xxxxxxxxxx xxxxxxxxx
xxxxxxxxxxxxxxxx xxxxxxxxxxx
xxxxx xxxxxxxxx
写得不够简洁, 请见谅...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.192.148.69
1F:推 ForeverT:谢谢 研究研究 03/31 14:18