Name : perl-Inline-Files
| |
Version : 0.71
| Vendor : obs://build_opensuse_org/devel:languages:perl
|
Release : lp155.1.1
| Date : 2023-07-20 16:53:01
|
Group : Development/Libraries/Perl
| Source RPM : perl-Inline-Files-0.71-lp155.1.1.src.rpm
|
Size : 0.04 MB
| |
Packager : https://www_suse_com/
| |
Summary : Multiple virtual files at the end of your code
|
Description :
Inline::Files generalizes the notion of the \'__DATA__\' marker and the associated \'< DATA>\' filehandle, to an arbitrary number of markers and associated filehandles.
When you add the line:
use Inline::Files;
to a source file you can then specify an arbitrary number of distinct virtual files at the end of the code. Each such virtual file is marked by a line of the form:
__SOME_SYMBOL_NAME_IN_UPPER_CASE__
The following text -- up to the next such marker -- is treated as a file, whose (pseudo-)name is available as an element of the package array \'AATTSOME_SYMBOL_NAME_IN_UPPER_CASE\'. The name of the first virtual file with this marker is also available as the package scalar \'$SOME_SYMBOL_NAME_IN_UPPER_CASE\'.
The filehandle of the same name is magical -- just like \'ARGV\' -- in that it automatically opens itself when first read. Furthermore -- just like \'ARGV\' -- the filehandle re-opens itself to the next appropriate virtual file (by \'shift\'-ing the first element of \'AATTSOME_SYMBOL_NAME_IN_UPPER_CASE\' into \'$SOME_SYMBOL_NAME_IN_UPPER_CASE\') whenever it reaches EOF.
So, just as with \'ARGV\', you can treat all the virtual files associated with a single symbol either as a single, multi-part file:
use Inline::Files;
while (< FILE>) { print \"$FILE: $_\"; }
__FILE__ File 1 here
__FILE__ File 2 here
__OTHER_FILE__ Other file 1
__FILE__ File 3 here
or as a series of individual files:
use Inline::Files;
foreach $filename (AATTFILE) { open HANDLE, $filename; print \"< < $filename>>\ \"; while (< HANDLE>) { print; } }
__FILE__ File 1 here
__FILE__ File 2 here
__OTHER_FILE__ Other file 1
__FILE__ File 3 here
Note that these two examples completely ignore the lines:
__OTHER_FILE__ Other file 1
which would be accessed via the \'OTHER_FILE\' filehandle.
Unlike \'< ARGV>\'/\'AATTARGV\'/\'$ARGV\', Inline::Files also makes use of the hash associated with an inline file\'s symbol. That is, when you create an inline file with a marker \'__WHATEVER__\', the hash \'%WHATEVER\' will contain information about that file. That information is:
* \'$WHATEVER{file}\'
The name of the disk file in which the inlined \'__WHATEVER__\' files were defined;
* \'$WHATEVER{line}\'
The line (starting from 1) at which the current inline \'__WHATEVER__\' file being accessed by \'< WHATEVER>\' started.
* \'$WHATEVER{offset}\'
The byte offset (starting from 0) at which the current inline \'__WHATEVER__\' file being accessed by \'< WHATEVER>\' started.
* \'$WHATEVER{writable}\'
Whether the the current inline file being accessed by \'< WHATEVER>\' is opened for output.
The hash and its elements are read-only and the entry values are only meaningful when the corresponding filehandle is open.
|
RPM found in directory: /packages/linux-pbone/ftp5.gwdg.de/pub/opensuse/repositories/devel:/languages:/perl:/CPAN-I/15.5/noarch |