2010-12-31 14 views
0

このスクリプトは "abc"を出力します。 printfのFORMAT部分を出力として "123"に変更するにはどうすればよいですか?あなたはprintfformat stringsで "左切り捨てる" ことはできませんprintf形式の質問

#!/usr/bin/env perl 
use warnings; 
use 5.012; 


my $str = 'abc123'; 

printf "%3.3s\n", $str; 

# abc 
+0

なぜあなたは、文字列をスライスに嫌いますか? –

+0

私は突然のインスピレーションを得てprintfでもう一度オプションを試してみました。 –

答えて

2

正規表現またはsubstrのいずれかを使用して、その文字列から "123"を得るために適用する論理が何であるかによって、必要な部分を削除する必要があります。

print substr($str, 3, 3) . "\n"; # Get 3 scharacters from char #4 

または

print substr($str, -3) . "\n"; # Get last 3 chars 

または

$str =~ /(\d+)/; # Get the first digits-only substring 
print "$1\n";