#!/usr/bin/perl

# 216 Pad a string on both sides

sub center {
    my ($s, $m, $c) = @_;
    my $slen = length $s;
    return $s if $slen > $m;
    $c //= ' ';
    my $r = $c x $m;
    my $p = int($m/2 - $slen/2);
    substr($r, $p, $slen, $s);
    return $r;    
}

printf "width %3d: %s\n", 10, center("abcd",10,"X");
# the result should be "XXXabcdXXX".

foreach my $m ( 0..12 ) {
    printf "width %3d: %s\n", $m, center('xyz', $m, '-');    
}

printf "width %3d: %s\n", 12, center('xyz', 12) . '<-- c defaults to space';
