初めてのPerl 第5章 練習問題3
ユーザーに長い幅を指定された際に、定規を伸ばす実装はできませんでした。
最終的な出力結果に至るまでのコードをコメントアウトし、記載しています。 以下プログラムになります。
#!/usr/bin/perl use strict; use warnings; use Data::Dumper; use 5.010; print "1行目では必ず、カラムを指定してください。\n"; #ユーザーがカラムを設定する my $column = <STDIN>; chomp($column); print "次は表示させたい文字列を入力してください。\n"; #入力値を格納する。 my @list = <STDIN>; chomp(@list); #ものさしを表示する #print "1234567890" * 6; say "1234567890" x 6; #ものさしに合わせて20字目に右揃えにしたい。 =pod foreach my $line(@list){ printf "%$columns\n",$line; } #推奨されている書き方 foreach my $line(@list){ printf "%${column}s",$line; } foreach my $line(@list){ printf "%${colum}"."s.\n"; } foreach my $line(@list){ print Dumper $line; printf '%'.$column.'s',$line; } foreach my $line(@list){ printf "%".$column."s".$line."\n"; } foreach my $line(@list){ printf "%".$column."s".$line."\n"; } =cut foreach my $line(@list){ print sprintf("%${column}s\n", $line); }
以下が出力結果となります。
1行目では必ず、カラムを指定してください。
23
次は表示させたい文字列を入力してください。
hello
good-bye
123456789012345678901234567890123456789012345678901234567890
hello
good-bye