Aion-Fs

 view release on metacpan or  search on metacpan

README.md  view on Meta::CPAN

```perl
goto_editor "mypath", 10;
cat "ed.txt"  # => mypath:10\n

eval { goto_editor "`", 1 }; $@  # ~> `:1 --> 512
```

## from_pkg (;$pkg)

Переводит пакет в путь ФС. Без параметра использует `$_`.

```perl
from_pkg "Aion::Fs"  # => Aion/Fs.pm
[map from_pkg, "Aion::Fs", "A::B::C"]  # --> ["Aion/Fs.pm", "A/B/C.pm"]
```

## to_pkg (;$path)

Переводит путь из ФС в пакет. Без параметра использует `$_`.

```perl
to_pkg "Aion/Fs.pm"  # => Aion::Fs
[map to_pkg, "Aion/Fs.md", "A/B/C.md"]  # --> ["Aion::Fs", "A::B::C"]
```

## from_inc (;$pkg)

Переводит пакет в путь ФС в `@INC`. Файл с пакетом должен существовать в одном из путей `@INC`. Без параметра использует `$_`.

```perl
from_inc "Aion::Fs" # -> $INC{'Aion/Fs.pm'}
[map from_inc, "A::B::C", "Aion::Fs"]  # --> [$INC{'Aion/Fs.pm'}]

from_inc "A::B::C" # -> undef
```

## to_inc (;$path)

Переводит путь из ФС в `@INC` в пакет. Без параметра использует `$_`.

```perl
to_inc $INC{'Aion/Fs.pm'} # => Aion::Fs
[map to_inc,"A/B/C.pm", $INC{'Aion/Fs.pm'}]  # --> ["Aion::Fs"]

to_inc 'Aion/Fs.pm' # -> undef
```

## ilay (;$path)

Создаёт файловый дескриптор. Он умеет закрываться, как только на него исчезнет последняя ссылка.

Так же имеет метод `path`, к-й возвращает путь к файлу.

```perl
my $test_file = "test_ilay_complete.txt";

my $f = ilay $test_file;
print $f "Line 1\n";
print $f "Line 2\n";

my $std = select $f; $| = 1; select $std;
-s $f # -> 14

$f->path # => test_ilay_complete.txt
fileno($f) > 0 # -> 1

undef $f;

cat $test_file # => Line 1\nLine 2\n

local $_ = [$test_file, ':raw'];
my $f = ilay;

my $str = "string";
my $num = 42;
my $end = "END";

*FD = *$f{IO};
format FD =
@<<<<<<<< @||||| @>>>>>
$str,     $num,  $end
.

write FD;

$str = 'int';

write FD;

undef *FD;
undef $f;

my $table = << 'TABLE';
string      42      END
int         42      END
TABLE

cat $test_file # -> $table
```

### See also

* [IO::Handle](https://perldoc.perl.org/IO::Handle).

## icat (;$file)

Создаёт файловый дескриптор с возможностью автозакрытия, как только пропадёт последняя на него ссылка.

Так же имеет метод `path` возвращающий переданный в него путь.

```perl
local $_ = "test_icat_complete.txt";
lay "Line 1\nLine 2\nLine 3\nBinary\x00\x01\x02";

my $f = icat;

my $bytes = read $f, my $buf, 6;
$bytes # -> 6
$buf # => Line 1

scalar <$f> # -> "\n"



( run in 0.947 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )