فرمتبندی خروجی
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]);
}
خلاصه
- sprintf برمیگرداند، printf چاپ میکند
- %s رشته، %d صحیح، %.Nf اعشاری
- %-10s چپچین، %10s راستچین
این مبحث بخشی از دوره آموزش کامل پرل است.