فرمت‌بندی خروجی

sprintf و printf با %s، %d، %f برای خروجی مرتب.

sprintf — ساخت رشته فرمت‌شده

my $s = sprintf("%s has %d apples", "Ali", 5);
say $s;      { Ali has 5 apples }

printf — چاپ مستقیم فرمت‌شده

printf("%-10s %5d\n", "Ali", 25);
printf("%-10s %5d\n", "Sara", 100);

الگوهای اصلی

الگومعنیمثال
%sرشتهsprintf("%s!", "hi")
%dعدد صحیحsprintf("%d", 3.7) → 4
%fاعشاریsprintf("%.2f", 3.14159) → 3.14
%xهگزsprintf("%x", 255) → ff
%%خود %sprintf("100%%")

عرض و تراز

printf("[%10s]\n", "hi");     { [        hi] — راست‌چین }
printf("[%-10s]\n", "hi");    { [hi        ] — چپ‌چین }
printf("[%5d]\n", 42);        { [   42] }

دقت اعشار

printf("%.2f\n", 3.14159);     { 3.14 }
printf("%.4f\n", 3.14159);     { 3.1416 }
printf("%.0f\n", 3.7);         { 4 }

مثال: جدول مرتب

my @data = (
  ["Laptop", 3, 25000],
  ["Mouse", 10, 500],
  ["Keyboard", 2, 1200],
);

printf("%-12s %5s %10s\n", "Product", "Qty", "Price");
printf("%-12s %5s %10s\n", "-" x 8, "-" x 3, "-" x 6);
foreach my $row (@data) {
  printf("%-12s %5d %10d\n", $row->[0], $row->[1], $row->[2]);
}

خلاصه

این مبحث بخشی از دوره آموزش کامل پرل است.

ابزارهای مرتبط