In IO::CatHandle§
See primary documentation in context for method read
method read(IO::CatHandle:D: Int(Cool:D) $bytes = 65536 --> Buf:D)
Reads up to $bytes
bytes from the handle and returns them in a Buf
. $bytes
defaults to an implementation-specific value (in Rakudo, the value of $*DEFAULT-READ-ELEMS
, which by default is set to 65536
). It is permitted to call this method on handles that are not in binary mode.
(my $f1 = 'foo'.IO).spurt: 'meow'; (my $f2 = 'bar'.IO).spurt: Blob.new: 4, 5, 6; with IO::CatHandle.new: :bin, $f1, $f2 { say .read: 2; # OUTPUT: «Buf[uint8]:0x<6d 65>» say .read: 2000; # OUTPUT: «Buf[uint8]:0x<6f 77 04 05 06>» } # Non-binary mode is OK too: with IO::CatHandle.new: $f1, $f2 { say .get; # OUTPUT: «meow» say .read: 2000; # OUTPUT: «Buf[uint8]:0x<04 05 06>» }
In IO::Handle§
See primary documentation in context for method read
method read(IO::Handle:D: Int(Cool:D) $bytes = 65536 --> Buf:D)
Binary reading; reads and returns up to $bytes
bytes from the filehandle. $bytes
defaults to an implementation-specific value (in Rakudo, the value of $*DEFAULT-READ-ELEMS
, which by default is set to 65536
). This method can be called even when the handle is not in binary mode.
(my $file = 'foo'.IO).spurt: 'I ♥ Raku'; given $file.open { say .read: 6; # OUTPUT: «Buf[uint8]:0x<49 20 e2 99 a5 20>» .close; }
In role IO::Socket§
See primary documentation in context for method read
method read(IO::Socket:D: Int(Cool) $bytes)
Reads $bytes
bytes from the socket and returns them in a Blob
.
The same caveat of mixed binary and non-binary reads described in method recv applies.
Fails if the socket is not connected.