GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  IO::ANY (3)

.ds Aq ’

NAME

IO::Any - open anything

CONTENTS

SYNOPSIS



    # NOTE commented out lines doesnt work (yet)
    use IO::Any;

    $fh = IO::Any->read(filename);
    $fh = IO::Any->read(file://var/log/syslog);
    #$fh = IO::Any->read(http://search.cpan.org/);
    #$fh = IO::Any->read(-);
    $fh = IO::Any->read([folder, other-folder, filename]);
    $fh = IO::Any->read(folder);
    $fh = IO::Any->read("some text\nwith more lines\n");
    $fh = IO::Any->read(\"some text\nwith more lines\n");
    $fh = IO::Any->read({"123":[1,2,3]});
    $fh = IO::Any->read(<root><element>abc</element></root>);
    $fh = IO::Any->read(*DATA);
    $fh = IO::Any->read(IO::String->new("cba"));
    #$fh = IO::Any->read($object_with_toString_method);

    $fh = IO::Any->write(filename);
    $fh = IO::Any->write(file://var/log/syslog);
    #$fh = IO::Any->write(-);
    $fh = IO::Any->write([folder, filename]);
    #$fh = IO::Any->write(=);
    my $string;
    $fh = IO::Any->write(\$string);

    my $content = IO::Any->slurp([folder, filename]);
    IO::Any->spew([folder2, filename], $content);

    perl -MIO::Any -le print IO::Any->slurp("/etc/passwd")
    perl -MIO::Any -le IO::Any->spew("/tmp/timetick", time())



DESCRIPTION

The aim is to provide read/write anything. The module tries to guess $what the anything is based on some rules. See new method Pod for examples and new and _guess_what code for the implementation.

There are two methods slurp and spew to read/write whole $what.

MOTIVATION

The purpose is to be able to use IO::Any in other modules that needs to read or write data. The description for an argument could be - pass anything that IO::Any accepts as argument - GLOBs, IO::File, Path::Class::File, IO::AtomicFile, IO::String, pointers to scalar and pointer to array (array elements are passed to catfile in File::Spec as portable file addressing).

First time I’ve used IO::Any for JSON::Util where for the functions to encode and decode needs to read/write data.

METHODS

new($what, CW$how, CW$options)

Open $what in $how mode.

$what can be:



                filename                => [ file => filename ],
                folder/filename         => [ file => folder/filename ],
                file:///folder/filename => [ file => /folder/filename ],
                [ folder, filename ]  => [ file => File::Spec->catfile(folder, filename) ],
                http://a/b/c            => [ http => http://a/b/c ],
                https://a/b/c           => [ http => https://a/b/c ],
                {"123":[1,2,3]}         => [ string => {"123":[1,2,3]} ],
                [1,2,3]                 => [ string => [1,2,3] ],
                <xml></xml>             => [ string => <xml></xml> ],
                "a\nb\nc\n"               => [ string => "a\nb\nc\n" ],
                *DATA                     => [ file => *{DATA}{IO} ],



Returns filehandle. IO::String for ’string’, IO::File for ’file’. ’http’ not implemented yet.

Here are available %$options options:



    atomic    true/false if the file operations should be done using L<IO::AtomicFile> or L<IO::File>
    LOCK_SH   lock file for shared access
    LOCK_EX   lock file for exclusive
    LOCK_NB   lock file non blocking (will throw an excpetion if file is
                  already locked, instead of blocking the process)



    _guess_what

Returns ($type, $what). $type can be:



    file
    string
    http
    iostring
    iofile



$what is normalized path that can be used for IO::*.

    read($what)

Same as IO::Any->new($what, <); or IO::Any->new($what);.

    write($what)

Same as IO::Any->new($what, >);

    slurp($what)

Returns content of $what.

If AnyEvent is loaded then uses event loop to read the content.

spew($what, CW$data, CW$opt)

Writes $data to $what.

If AnyEvent is loaded then uses event loop to write the content.

SEE ALSO

IO::All, File::Spec, Path::Class

AUTHOR

Jozef Kutej, <jkutej at cpan.org>

CONTRIBUTORS

The following people have contributed to the Sys::Path by committing their code, sending patches, reporting bugs, asking questions, suggesting useful advice, nitpicking, chatting on IRC or commenting on my blog (in no particular order):



    SREZIC [...] cpan.org
    Alexandr Ciornii
    Gabor Szabo
    Przemek WesoXek
    Slaven ReziX



BUGS

Please report any bugs or feature requests to bug-io-any at rt.cpan.org, or through the web interface at <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=IO-Any>. I will be notified, and then you’ll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.



    perldoc IO::Any



You can also look for information at:
o GitHub: issues

<http://github.com/jozef/IO-Any/issues>

o RT: CPAN’s request tracker

<http://rt.cpan.org/NoAuth/Bugs.html?Dist=IO-Any>

o AnnoCPAN: Annotated CPAN documentation

<http://annocpan.org/dist/IO-Any>

o CPAN Ratings

<http://cpanratings.perl.org/d/IO-Any>

o Search CPAN

<http://search.cpan.org/dist/IO-Any>

COPYRIGHT & LICENSE

Copyright 2009 Jozef Kutej, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 IO::ANY (3) 2016-04-03

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.