Add ARM files
[dh-make-perl] / dev / arm / libio-stringy-perl / io-stringy-2.110 / debian / libio-stringy-perl / usr / share / perl5 / IO / Stringy.pm
diff --git a/dev/arm/libio-stringy-perl/io-stringy-2.110/debian/libio-stringy-perl/usr/share/perl5/IO/Stringy.pm b/dev/arm/libio-stringy-perl/io-stringy-2.110/debian/libio-stringy-perl/usr/share/perl5/IO/Stringy.pm
new file mode 100644 (file)
index 0000000..978e53c
--- /dev/null
@@ -0,0 +1,446 @@
+package IO::Stringy;
+
+use vars qw($VERSION);
+$VERSION = "2.110";
+
+1;
+__END__
+
+
+=head1 NAME
+
+IO-stringy - I/O on in-core objects like strings and arrays
+
+
+=head1 SYNOPSIS
+
+    IO::
+    ::AtomicFile   adpO  Write a file which is updated atomically     ERYQ
+    ::Lines        bdpO  I/O handle to read/write to array of lines   ERYQ
+    ::Scalar       RdpO  I/O handle to read/write to a string         ERYQ
+    ::ScalarArray  RdpO  I/O handle to read/write to array of scalars ERYQ
+    ::Wrap         RdpO  Wrap old-style FHs in standard OO interface  ERYQ
+    ::WrapTie      adpO  Tie your handles & retain full OO interface  ERYQ
+
+
+=head1 DESCRIPTION
+
+This toolkit primarily provides modules for performing both traditional
+and object-oriented i/o) on things I<other> than normal filehandles;
+in particular, L<IO::Scalar|IO::Scalar>, L<IO::ScalarArray|IO::ScalarArray>,
+and L<IO::Lines|IO::Lines>.
+
+In the more-traditional IO::Handle front, we
+have L<IO::AtomicFile|IO::AtomicFile>
+which may be used to painlessly create files which are updated
+atomically.
+
+And in the "this-may-prove-useful" corner, we have L<IO::Wrap|IO::Wrap>,
+whose exported wraphandle() function will clothe anything that's not
+a blessed object in an IO::Handle-like wrapper... so you can just
+use OO syntax and stop worrying about whether your function's caller
+handed you a string, a globref, or a FileHandle.
+
+
+=head1 WARNINGS
+
+Perl's TIEHANDLE spec was incomplete prior to 5.005_57;
+it was missing support for C<seek()>, C<tell()>, and C<eof()>.
+Attempting to use these functions with an IO::Scalar, IO::ScalarArray,
+IO::Lines, etc. B<will not work> prior to 5.005_57.
+None of the relevant methods will be invoked by Perl;
+and even worse, this kind of bug can lie dormant for a while.
+If you turn warnings on (via C<$^W> or C<perl -w>), and you see
+something like this...
+
+    seek() on unopened file
+
+...then you are probably trying to use one of these functions
+on one of our IO:: classes with an old Perl.  The remedy is to simply
+use the OO version; e.g.:
+
+    $SH->seek(0,0);    ### GOOD: will work on any 5.005
+    seek($SH,0,0);     ### WARNING: will only work on 5.005_57 and beyond
+
+
+
+=head1 INSTALLATION
+
+
+=head2 Requirements
+
+As of version 2.x, this toolkit requires Perl 5.005 for
+the IO::Handle subclasses, and 5.005_57 or better is
+B<strongly> recommended.  See L<"WARNINGS"> for details.
+
+
+=head2 Directions
+
+Most of you already know the drill...
+
+    perl Makefile.PL
+    make
+    make test
+    make install
+
+For everyone else out there...
+if you've never installed Perl code before, or you're trying to use
+this in an environment where your sysadmin or ISP won't let you do
+interesting things, B<relax:> since this module contains no binary
+extensions, you can cheat.  That means copying the directory tree
+under my "./lib" directory into someplace where your script can "see"
+it.  For example, under Linux:
+
+    cp -r IO-stringy-1.234/lib/* /path/to/my/perl/
+
+Now, in your Perl code, do this:
+
+    use lib "/path/to/my/perl";
+    use IO::Scalar;                   ### or whatever
+
+Ok, now you've been told.  At this point, anyone who whines about
+not being given enough information gets an unflattering haiku
+written about them in the next change log.  I'll do it.
+Don't think I won't.
+
+
+
+=head1 VERSION
+
+$Id: Stringy.pm,v 1.3 2005/02/10 21:24:05 dfs Exp $
+
+
+
+=head1 TO DO
+
+=over 4
+
+=item (2000/08/02)  Finalize $/ support
+
+Graham Barr submitted this patch half a I<year> ago;
+Like a moron, I lost his message under a ton of others,
+and only now have the experimental implementation done.
+
+Will the sudden sensitivity to $/ hose anyone out there?
+I'm worried, so you have to enable it explicitly in 1.x.
+It will be on by default in 2.x, though only IO::Scalar
+has been implemented.
+
+=item (2001/08/08)  Remove IO::WrapTie from new IO:: classes
+
+It's not needed.  Backwards compatibility could be maintained
+by having new_tie() be identical to new().  Heck, I'll bet
+that IO::WrapTie should be reimplemented so the returned
+object is just like an IO::Scalar in its use of globrefs.
+
+
+=back
+
+
+
+=head1 CHANGE LOG
+
+=over 4
+
+
+=item Version 2.110   (2005/02/10)
+
+Maintainership taken over by DSKOLL <dfs@roaringpenguin.com>
+
+Closed the following bugs at
+https://rt.cpan.org/NoAuth/Bugs.html?Dist=IO-stringy:
+
+=item
+
+2208 IO::ScalarArray->getline does not return undef for EOF if undef($/)
+
+=item
+
+7132 IO-stringy/Makefile.PL bug - name should be module name
+
+=item
+
+11249 IO::Scalar flush shouldn't return undef
+
+=item
+
+2172 $\ (output record separator) not respected
+
+=item
+
+8605 IO::InnerFile::seek() should return 1 on success
+
+=item
+
+4798 *.html in lib/
+
+=item
+
+4369 Improvement: handling of fixed-size reads in IO::Scalar
+
+(Actually, bug 4369 was closed in Version 2.109)
+
+=item Version 2.109   (2003/12/21)
+
+IO::Scalar::getline now works with ref to int.
+I<Thanks to Dominique Quatravaux for this patch.>
+
+
+=item Version 2.108   (2001/08/20)
+
+The terms-of-use have been placed in the distribution file "COPYING".
+Also, small documentation tweaks were made.
+
+
+=item Version 2.105   (2001/08/09)
+
+Added support for various seek() whences to IO::ScalarArray.
+
+Added support for consulting $/ in IO::Scalar and IO::ScalarArray.
+The old C<use_RS()> is not even an option.
+Unsupported record separators will cause a croak().
+
+Added a lot of regression tests to supoprt the above.
+
+Better on-line docs (hyperlinks to individual functions).
+
+
+=item Version 2.103   (2001/08/08)
+
+After sober consideration I have reimplemented IO::Scalar::print()
+so that it once again always seeks to the end of the string.
+Benchmarks show the new implementation to be just as fast as
+Juergen's contributed patch; until someone can convince me otherwise,
+the current, safer implementation stays.
+
+I thought more about giving IO::Scalar two separate handles,
+one for reading and one for writing, as suggested by Binkley.
+His points about what tell() and eof() return are, I think,
+show-stoppers for this feature.  Even the manpages for stdio's fseek()
+seem to imply a I<single> file position indicator, not two.
+So I think I will take this off the TO DO list.
+B<Remedy:> you can always have two handles open on the same
+scalar, one which you only write to, and one which you only read from.
+That should give the same effect.
+
+
+=item Version 2.101   (2001/08/07)
+
+B<Alpha release.>
+This is the initial release of the "IO::Scalar and friends are
+now subclasses of IO::Handle".  I'm flinging it against the wall.
+Please tell me if the banana sticks.  When it does, the banana
+will be called 2.2x.
+
+First off, I<many many thanks to Doug Wilson>, who
+has provided an I<invaluable> service by patching IO::Scalar
+and friends so that they (1) inherit from IO::Handle, (2) automatically
+tie themselves so that the C<new()> objects can be used in native i/o
+constructs, and (3) doing it so that the whole damn thing passes
+its regression tests.  As Doug knows, my globref Kung-Fu was not
+up to the task; he graciously provided the patches.  This has earned
+him a seat at the L<Co-Authors|"AUTHOR"> table, and the
+right to have me address him as I<sensei>.
+
+Performance of IO::Scalar::print() has been improved by as much as 2x
+for lots of little prints, with the cost of forcing those
+who print-then-seek-then-print to explicitly seek to end-of-string
+before printing again.
+I<Thanks to Juergen Zeller for this patch.>
+
+Added the COPYING file, which had been missing from prior versions.
+I<Thanks to Albert Chin-A-Young for pointing this out.>
+
+IO::Scalar consults $/ by default (1.x ignored it by default).
+Yes, I still need to support IO::ScalarArray.
+
+
+=item Version 1.221   (2001/08/07)
+
+I threatened in L<"INSTALLATION"> to write an unflattering haiku
+about anyone who whined that I gave them insufficient information...
+but it turns out that I left out a crucial direction.  D'OH!
+I<Thanks to David Beroff for the "patch" and the haiku...>
+
+       Enough info there?
+        Here's unflattering haiku:
+       Forgot the line, "make"!  ;-)
+
+
+
+=item Version 1.220   (2001/04/03)
+
+Added untested SEEK, TELL, and EOF methods to IO::Scalar
+and IO::ScalarArray to support corresponding functions for
+tied filehandles: untested, because I'm still running 5.00556
+and Perl is complaining about "tell() on unopened file".
+I<Thanks to Graham Barr for the suggestion.>
+
+Removed not-fully-blank lines from modules; these were causing
+lots of POD-related warnings.
+I<Thanks to Nicolas Joly for the suggestion.>
+
+
+=item Version 1.219   (2001/02/23)
+
+IO::Scalar objects can now be made sensitive to $/ .
+Pains were taken to keep the fast code fast while adding this feature.
+I<Cheers to Graham Barr for submitting his patch;
+jeers to me for losing his email for 6 months.>
+
+
+=item Version 1.218   (2001/02/23)
+
+IO::Scalar has a new sysseek() method.
+I<Thanks again to Richard Jones.>
+
+New "TO DO" section, because people who submit patches/ideas should
+at least know that they're in the system... and that I won't lose
+their stuff.  Please read it.
+
+New entries in L<"AUTHOR">.
+Please read those too.
+
+
+
+=item Version 1.216   (2000/09/28)
+
+B<IO::Scalar and IO::ScalarArray now inherit from IO::Handle.>
+I thought I'd remembered a problem with this ages ago, related to
+the fact that these IO:: modules don't have "real" filehandles,
+but the problem apparently isn't surfacing now.
+If you suddenly encounter Perl warnings during global destruction
+(especially if you're using tied filehandles), then please let me know!
+I<Thanks to B. K. Oxley (binkley) for this.>
+
+B<Nasty bug fixed in IO::Scalar::write().>
+Apparently, the offset and the number-of-bytes arguments were,
+for all practical purposes, I<reversed.>  You were okay if
+you did all your writing with print(), but boy was I<this> a stupid bug!
+I<Thanks to Richard Jones for finding this one.
+For you, Rich, a double-length haiku:>
+
+       Newspaper headline
+         typeset by dyslexic man
+       loses urgency
+
+       BABY EATS FISH is
+         simply not equivalent
+       to FISH EATS BABY
+
+B<New sysread and syswrite methods for IO::Scalar.>
+I<Thanks again to Richard Jones for this.>
+
+
+=item Version 1.215   (2000/09/05)
+
+Added 'bool' overload to '""' overload, so object always evaluates
+to true.  (Whew.  Glad I caught this before it went to CPAN.)
+
+
+=item Version 1.214   (2000/09/03)
+
+Evaluating an IO::Scalar in a string context now yields
+the underlying string.
+I<Thanks to B. K. Oxley (binkley) for this.>
+
+
+=item Version 1.213   (2000/08/16)
+
+Minor documentation fixes.
+
+
+=item Version 1.212   (2000/06/02)
+
+Fixed IO::InnerFile incompatibility with Perl5.004.
+I<Thanks to many folks for reporting this.>
+
+
+=item Version 1.210   (2000/04/17)
+
+Added flush() and other no-op methods.
+I<Thanks to Doru Petrescu for suggesting this.>
+
+
+=item Version 1.209   (2000/03/17)
+
+Small bug fixes.
+
+
+=item Version 1.208   (2000/03/14)
+
+Incorporated a number of contributed patches and extensions,
+mostly related to speed hacks, support for "offset", and
+WRITE/CLOSE methods.
+I<Thanks to Richard Jones, Doru Petrescu, and many others.>
+
+
+
+=item Version 1.206   (1999/04/18)
+
+Added creation of ./testout when Makefile.PL is run.
+
+
+=item Version 1.205   (1999/01/15)
+
+Verified for Perl5.005.
+
+
+=item Version 1.202   (1998/04/18)
+
+New IO::WrapTie and IO::AtomicFile added.
+
+
+=item Version 1.110
+
+Added IO::WrapTie.
+
+
+=item Version 1.107
+
+Added IO::Lines, and made some bug fixes to IO::ScalarArray.
+Also, added getc().
+
+
+=item Version 1.105
+
+No real changes; just upgraded IO::Wrap to have a $VERSION string.
+
+=back
+
+
+
+
+=head1 AUTHOR
+
+=over 4
+
+=item Primary Maintainer
+
+David F. Skoll (F<dfs@roaringpenguin.com>).
+
+=item Original Author
+
+Eryq (F<eryq@zeegee.com>).
+President, ZeeGee Software Inc (F<http://www.zeegee.com>).
+
+=item Co-Authors
+
+For all their bug reports and patch submissions, the following
+are officially recognized:
+
+     Richard Jones
+     B. K. Oxley (binkley)
+     Doru Petrescu
+     Doug Wilson (for picking up the ball I dropped, and doing tie() right)
+
+
+=back
+
+Go to F<http://www.zeegee.com> for the latest downloads
+and on-line documentation for this module.
+
+Enjoy.  Yell if it breaks.
+
+
+=cut