Documentation for routine printf assembled from the following pages:

Class: IO::CatHandle §

From IO::CatHandle

(IO::CatHandle) method printf §

Defined as:

multi method printf(|)

The IO::CatHandle type overrides this method to throw a X::NYI exception. If you have a good idea for how this method should behave, tell Rakudo developers about it!

Class: IO::Handle §

From IO::Handle

(IO::Handle) method printf §

Defined as:

multi method printf(IO::Handle:D: Cool $format*@args)

Formats a string based on the given format and arguments and .prints the result into the filehandle. See sprintf for details on acceptable format directives.

Attempting to call this method when the handle is in binary mode will result in X::IO::BinaryMode exception being thrown.

my $fh = open 'path/to/file':w;
$fh.printf: "The value is %d\n"32;
$fh.close;

Language documentation: Independent routines §

From Independent routines

(Independent routines) routine printf §

Defined as:

multi sub printf(Cool:D $format*@args)

Produces output according to a format. The format used is the invocant (if called in method form) or the first argument (if called as a routine). The rest of the arguments will be substituted in the format following the format conventions. See sprintf for details on acceptable format directives.

"%s is %s".printf("þor""mighty");    # OUTPUT: «þor is mighty» 
printf"%s is %s""þor""mighty");  # OUTPUT: «þor is mighty»

On Junctions, it will also autothread, without a guaranteed order.

printf"%.2f ", ⅓ | ¼ | ¾ ); # OUTPUT: «0.33 0.25 0.75 »

Class: Cool §

From Cool

(Cool) method printf §

Defined as:

method printf(*@args)

Uses the object, as long as it is a format string, to format and print the arguments

"%.8f".printf(now - now ); # OUTPUT: «-0.00004118»