```{index} single: map_handle; File::Map function ``` ```{index} single: File::Map::map_handle; Perl function ``` # map_handle Attach an already-open filehandle to a scalar as a memory map. ## Synopsis ```perl open my $fh, '<:raw', $filename; map_handle my $map, $fh; map_handle my $map, $fh, '+<', $offset, $length; ``` ## Arguments - `$lvalue` — scalar to receive the mapping. - `$filehandle` — a real filehandle. Scalar-string handles and tied handles are rejected. - `$mode` — defaults to `'<'`. Same accepted values as `map_file`. - `$offset`, `$length` — same meaning and defaults as `map_file`. ## Examples Map the tail of a log file: ```perl open my $fh, '<:raw', '/var/log/syslog' or die $!; my $size = -s $fh; map_handle my $tail, $fh, '<', $size - 4096, 4096; ``` ## Edge cases - The filehandle must be binary. Encoding layers like `:utf8` or `:crlf` cause `map_handle` to reject the handle. - The handle must refer to a regular file, block device, or character device. Pipes and sockets cannot be mapped. - The handle stays valid after the call; closing it does not invalidate the mapping. ## Differences from upstream Fully compatible with upstream `File::Map` 0.71. ## See also - `map_file` — take a filename instead of a filehandle. - `sys_map` — pass raw `mmap(2)` flags directly. - `unmap` — release the mapping before scope exit.