Documentation for routine put assembled from the following pages:

Class: Mu §

From Mu

(Mu) method put §

multi method put(--> Bool:D)

Prints value to $*OUT, adding a newline at end, and if necessary, stringifying non-Str object using the .Str method.

"abc".put;              # OUTPUT: «abc␤»

Class: IO::CatHandle §

From IO::CatHandle

(IO::CatHandle) method put §

Defined as:

multi method put(|)

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 put §

Defined as:

multi method put(**@text --> True)
multi method put(Junction:D --> True)

Writes the given @text to the handle, coercing any non-Str objects to Str by calling .Str method on them, and appending the value of .nl-out at the end. Junction arguments autothread and the order of printed strings is not guaranteed.

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

my $fh = 'path/to/file'.IO.open: :w;
$fh.put: 'some text';
$fh.close;

Role: IO::Socket §

From IO::Socket

(IO::Socket) method put §

method put(IO::Socket:D: Str(Cool$string)

Writes the supplied string, with a \n appended to it, to the socket, thus sending it to other end of the connection.

Fails if the socket is not connected.

Language documentation: Independent routines §

From Independent routines

(Independent routines) sub put §

Defined as:

multi sub put()
multi sub put(**@args --> True)
multi sub put(Junction:D --> True)
multi sub put(Str:D \x)
multi sub put(\x)

Same as print, except it uses print-nl (which prints a newline, by default) at the end. Junction arguments autothread and the order of printed strings is not guaranteed.

put "Hi there!\n";   # OUTPUT: «Hi there!␤␤» 
put "Hi there!";     # OUTPUT: «Hi there!␤» 
put [123];       # OUTPUT: «1 2 3␤» 
put "Hello" | "Goodbye"# OUTPUT: «Hello␤Goodbye␤»

By itself, put() will print a new line

put "Hey"put(); put("Hey"); # OUTPUT: «Hey␤␤Hey␤»

but please note that we have used parentheses after put. Without these parentheses, it will throw an exception (with version 6.d and after). It will also raise an exception if it's used that way before for; use the method form .put instead.

.put for <1 2 3>;             # OUTPUT: «1␤2␤3␤»

Class: Proc::Async §

From Proc::Async

(Proc::Async) method put §

Defined as:

method put(Proc::Async:D: \x|c)

Does a .join on the output, adds a newline, and calls .print on it. Will throw if it's not started, or not open for writing.