0

オフセットの問題が発生することなく、いくつかの結果を表に単純に出力したいと考えています。foreach と値の出力について心配する必要はありません。これはわかりやすくするための疑似コードです。

print "\n  ______________________________________________________";
print "\n |                                                      |";
print "\n |                        Title                         |";
print "\n +______________________________________________________+";
print "\n |                          |                           |";
print "\n |          City            |          Size             |";
print "\n |__________________________|___________________________|";

#Sort by highest scores
################################
foreach (city, size)
{
print "\n | (city(value)";
print "| (size(value)";
}

何か案は?

4

2 に答える 2

5

もはや使用されることはめったにありませんが、Perlにはこれらのタイプのフォームを作成する機能が組み込まれています。

基本的に、仕様を使用して、これらのテーブルをどのようにフォーマットするか、およびformatステートメントを使用してこれらのテーブルの情報を配置する場所を指定します。次に、Perlwriteステートメントを使用してその形式に書き込みます。テーブルのヘッダーとフッターも指定できます。

于 2012-12-06T14:40:14.347 に答える
2

substr テンプレート行の正しい部分を上書きするために使用することをお勧めします 。

use strict;
use warnings;

my %data = (
  Birmingham  => 1_000_000,
  Bristol     => 430_000,
  Manchester   => 110_000,
);

print "  ______________________________________________________\n";
print " |                                                      |\n";
print " |                        Title                         |\n";
print " +______________________________________________________+\n";

my $template =
      " |                          |                           |\n";
print $template;

while (my ($city, $size) = each %data) {
  my $line = $template;
  substr $line, 12, length $city, $city;
  substr $line, 39, length $size, $size;
  print $line;
}

print " |__________________________|___________________________|\n";

出力

  ______________________________________________________
 |                                                      |
 |                        Title                         |
 +______________________________________________________+
 |                          |                           |
 |          Bristol         |          430000           |
 |          Manchester      |          110000           |
 |          Birmingham      |          1000000          |
 |__________________________|___________________________|
于 2012-12-06T14:55:40.923 に答える