Perl5 リファレンス



       sprintf FORMAT, LIST
               Returns a string formatted by the usual `printf'
               conventions of the C library function `sprintf'.
               See sprintf(3) or printf(3) on your system for an
               explanation of the general principles.

               Perl does its own `sprintf' formatting--it
               emulates the C function `sprintf', but it doesn't
               use it (except for floating-point numbers, and
               even then only the standard modifiers are
               allowed).  As a result, any non-standard
               extensions in your local `sprintf' are not
               available from Perl.

               Perl's `sprintf' permits the following
               universally-known conversions:

                  %%   a percent sign
                  %c   a character with the given number
                  %s   a string
                  %d   a signed integer, in decimal
                  %u   an unsigned integer, in decimal
                  %o   an unsigned integer, in octal
                  %x   an unsigned integer, in hexadecimal
                  %e   a floating-point number, in scientific notation
                  %f   a floating-point number, in fixed decimal notation
                  %g   a floating-point number, in %e or %f notation

               In addition, Perl permits the following widely-
               supported conversions:

                  %X   like %x, but using upper-case letters
                  %E   like %e, but using an upper-case "E"
                  %G   like %g, but with an upper-case "E" (if applicable)
                  %b   an unsigned integer, in binary
                  %p   a pointer (outputs the Perl value's address in hexadecimal)
                  %n   special: *stores* the number of characters output so far
                       into the next variable in the parameter list

               Finally, for backward (and we do mean "backward")
               compatibility, Perl permits these unnecessary but
               widely-supported conversions:

                  %i   a synonym for %d
                  %D   a synonym for %ld
                  %U   a synonym for %lu
                  %O   a synonym for %lo
                  %F   a synonym for %f

               Perl permits the following universally-known flags
               between the `%' and the conversion letter:

                  space   prefix positive number with a space
                  +       prefix positive number with a plus sign
                  -       left-justify within the field
                  0       use zeros, not spaces, to right-justify
                  #       prefix non-zero octal with "0", non-zero hex with "0x"
                  number  minimum field width
                  .number "precision": digits after decimal point for
                          floating-point, max length for string, minimum length
                          for integer
                  l       interpret integer as C type "long" or "unsigned long"
                  h       interpret integer as C type "short" or "unsigned short"
                          If no flags, interpret integer as C type "int" or "unsigned"

               There are also two Perl-specific flags:

                  V       interpret integer as Perl's standard integer type
                  v       interpret string as a vector of integers, output as
                          numbers separated either by dots, or by an arbitrary
                          string received from the argument list when the flag
                          is preceded by C<*>

               Where a number would appear in the flags, an
               asterisk (`*') may be used instead, in which case
               Perl uses the next item in the parameter list as
               the given number (that is, as the field width or
               precision).  If a field width obtained through `*'
               is negative, it has the same effect as the `-'
               flag: left-justification.

               The `v' flag is useful for displaying ordinal
               values of characters in arbitrary strings:

                   printf "version is v%vd\n", $^V;            # Perl's version
                   printf "address is %*vX\n", ":", $addr;     # IPv6 address
                   printf "bits are %*vb\n", " ", $bits;       # random bitstring

               If `use locale' is in effect, the character used
               for the decimal point in formatted real numbers is
               affected by the LC_NUMERIC locale.  See the
               perllocale manpage.

               If Perl understands "quads" (64-bit integers)
               (this requires either that the platform natively
               support quads or that Perl be specifically
               compiled to support quads), the characters

                       d u o x X b i D U O

               print quads, and they may optionally be preceded
               by

                       ll L q

               For example

                       %lld %16LX %qo

               You can find out whether your Perl supports quads
               via the Config manpage:

                       use Config;
                       ($Config{use64bitint} eq 'define' || $Config{longsize} == 8) &&
                               print "quads\n";

               If Perl understands "long doubles" (this requires
               that the platform support long doubles), the flags

                       e f g E F G

               may optionally be preceded by

                       ll L

               For example

                       %llf %Lg

               You can find out whether your Perl supports long
               doubles via the Config manpage:

                       use Config;
                       $Config{d_longdbl} eq 'define' && print "long doubles\n";


Perl5リファレンスに戻る