routine spurt

Documentation for routine spurt assembled from the following types:

language documentation Independent routines

From Independent routines

(Independent routines) sub spurt

Defined as:

multi spurt(IO() $path|c)

The $path can be any object with an IO method that returns an IO::Path object. Calls IO::Path.spurt on the $path, forwarding any of the remaining arguments.


The encoding with which the contents will be written.

Boolean indicating whether to append to a (potentially) existing file. If the file did not exist yet, it will be created. Defaults to False.

Boolean indicating whether to fail if the file already exists. Defaults to False.


# write directly to a file 
spurt 'path/to/file''default text, directly written';
# write directly with a non-Unicode encoding 
spurt 'path/to/latin1_file''latin1 text: äöüß':enc<latin1>;
spurt 'file-that-already-exists''some text';           # overwrite file's contents: 
spurt 'file-that-already-exists'' new text':append;  # append to file's contents: 
say slurp 'file-that-already-exists';                    # OUTPUT: «some text new text␤» 
# fail when writing to a pre-existing file 
spurt 'file-that-already-exists''new text':createonly;
# OUTPUT: «Failed to open file /home/camelia/file-that-already-exists: file already exists …» 

class IO::Path

From IO::Path

(IO::Path) method spurt

Defined as:

method spurt(IO::Path:D: $data:$enc:$append:$createonly)

Opens the file path for writing, and writes all of the $data into it. File will be closed, afterwards. Will fail if it cannot succeed for any reason. The $data can be any Cool type or any Blob type. Arguments are as follows:

class IO::Handle

From IO::Handle

(IO::Handle) method spurt

Defined as:

multi method spurt(IO::Handle:D: Blob $data:$close = False)
multi method spurt(IO::Handle:D: Cool $data:$close = False)

Writes all of the $data into the filehandle, closing it when finished, if $close is True. For Cool $data, will use the encoding the handle is set to use ( or IO::Handle.encoding).

Behavior for spurting a Cool when the handle is in binary mode or spurting a Blob when the handle is NOT in binary mode is undefined.