2012-03-20 2 views
0

sprintf 뒤에 공백을 선도하는 문자열을 유지하기 위해 구분 기호로 null 문자 (\0)를 사용하고 있습니다. 그러나 null 문자가있는 문자열은 Cursesaddstr 함수 (이 경우)에서 작동하지 않습니다.
이 목적으로 \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

+0

'sprintf' 대신 [substr] (http://perldoc.perl.org/functions/substr.html)을 사용해야한다고 생각합니다. – cjm

+1

이것은 [XY 문제] (http://www.perlmonks.org/?node=XY%20Problem)입니다. 실제로'루틴'이하려고하는 것은 무엇입니까? – ikegami

답변

관련 문제