我使用空字符(\0
)作爲分隔符來保留在sprintf
之後的空白字符串。但具有空字符的字符串在此功能下不起作用(在這種情況下)。
是否有一些合適的字符替代\0
用於此目的?用前導空格分隔字符串有什麼好處?
#!/usr/bin/env perl
use warnings;
use 5.12.0;
sub routine {
my @list = @_;
@list = map{ "\0".$_."\0"; } @list;
# ...
# ...
@list = map{ sprintf "%35.35s", $_ } @list;
# ...
# ...
my $result = $list[5];
$result =~ s/\A\s+\0//;
$result =~ s/\0\s+\z//;
return $result;
}
究竟要那樣做是剝離空白? 'sprintf'? – TLP 2012-03-20 15:26:58
我想你應該使用[substr](http://perldoc.perl.org/functions/substr.html)而不是'sprintf'。 – cjm 2012-03-20 15:44:02
這是一個[XY問題](http://www.perlmonks.org/?node=XY%20Problem)。什麼是「常規」實際上試圖做什麼? – ikegami 2012-03-20 20:11:05