```{index} single: PerlIO::mmap; Perl module ``` # PerlIO::mmap ```{pperl-module-badges} PerlIO::mmap ``` Memory-mapped IO layer opened as `<:mmap`, with a read()/write() fallback when mmap fails. This is a PerlIO layer that memory-maps files for reading instead of using read() syscalls. It falls back to PerlIOBuf if mmap fails. The layer extends PerlIOBuf with: mptr — mapped address (from mmap()) len — mapped length bbuf — saved malloced buffer if map fails The BOOT section registers the "mmap" PerlIO layer via PerlIO_define_layer. `mmap.xs` vtable (PerlIO_mmap, lines 258-287): Pushed = PerlIOBuf_pushed — line 263 Popped = PerlIOBuf_popped — line 264 Open = PerlIOBuf_open — line 265 Binmode = PerlIOBase_binmode — line 266 Getarg = NULL — line 267 Fileno = PerlIOBase_fileno — line 268 Dup = PerlIOMmap_dup — line 269 Read = PerlIOBuf_read — line 270 Unread = PerlIOMmap_unread — line 271 Write = PerlIOMmap_write — line 272 Seek = PerlIOBuf_seek — line 273 Tell = PerlIOBuf_tell — line 274 Close = PerlIOBuf_close — line 275 Flush = PerlIOMmap_flush — line 276 Fill = PerlIOMmap_fill — line 277 Eof = PerlIOBase_eof — line 278 Error = PerlIOBase_error — line 279 Clearerr = PerlIOBase_clearerr — line 280 Setlinebuf = PerlIOBase_setlinebuf — line 281 Get_base = PerlIOMmap_get_base — line 282 Get_bufsiz = PerlIOBuf_bufsiz — line 283 Get_ptr = PerlIOBuf_get_ptr — line 284 Get_cnt = PerlIOBuf_get_cnt — line 285 Set_ptrcnt = PerlIOBuf_set_ptrcnt — line 286