2012-03-20 48 views
0

我使用空字符(\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; 
} 
+4

究竟要那樣做是剝離空白? 'sprintf'? – TLP 2012-03-20 15:26:58

+0

我想你應該使用[substr](http://perldoc.perl.org/functions/substr.html)而不是'sprintf'。 – cjm 2012-03-20 15:44:02

+1

這是一個[XY問題](http://www.perlmonks.org/?node=XY%20Problem)。什麼是「常規」實際上試圖做什麼? – ikegami 2012-03-20 20:11:05

回答

相關問題