---
name: "IO::File::WithFilename"
section: "3pm"
platform: "linux"
package: "libio-file-withfilename-perl"
version: "0.01-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/IO::File::WithFilename"
---

# IO::File::WithFilename(3pm)

filehandles that know their origin

## NAME

IO::File::WithFilename - filehandles that know their origin

## SYNOPSIS

```
    use IO::File::WithFilename;
    my $fh = IO::File::WithFilename->new('../movies/kin-dza-dza.ogg', O_RDONLY);
    print $fh->filename, "\n";
    print "$fh\n"; # same as above
```

## DESCRIPTION

This module does everything that `"IO::File"` does, but implements `"filename"` method, that `"File::Temp"` objects have. It lets you write the code that is ignorant of what classes of objects it works with.

If you want to check if it is safe to call `"filename"` method, you are recommended to call `"can"` method rather than to check an object's inheritance:

```
    print $obj->filename, "\n" if eval { $obj->can('filename') };
```

### EXPORT

Same as `"IO::File"`, i. e. `"O_XXX"` constants from the `"Fcntl"` module (if this module is available).

## SEE ALSO

IO::File, File::Temp

## AUTHOR

Ivan Fomichev, \<ifomichev@cpan.org\>

## COPYRIGHT AND LICENSE

Copyright (C) 2010 by Ivan Fomichev

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.10.1 or, at your option, any later version of Perl 5 you may have available.
