Test::Builder::IO::Scalar - A copy of IO::Scalar for Test::Builder |
Test::Builder::IO::Scalar - A copy of IO::Scalar for Test::Builder
This is a copy of the IO::Scalar manpage which ships with the Test::Builder manpage to
support scalar references as filehandles on Perl 5.6. Newer
versions of Perl simply use open()
's built in support.
the Test::Builder manpage can not have dependencies on other modules without careful consideration, so its simply been copied into the distribution.
This file came from the ``IO-stringy'' Perl5 toolkit.
Copyright (c) 1996 by Eryq. All rights reserved. Copyright (c) 1999,2001 by ZeeGee Software Inc. All rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Returns the self object on success, undefined on error.
croak()
if accidentally called in a scalar context.
Warning: this continues to always cause a seek to the end of the string, but if you perform seek()s and tell()s, it is still safer to explicitly seek-to-end before subsequent print()s.
seek OFFSET, WHENCE
, q.v.
getpos()
.
Perl's TIEHANDLE spec was incomplete prior to 5.005_57;
it was missing support for seek()
, tell()
, and eof()
.
Attempting to use these functions with an IO::Scalar will not work
prior to 5.005_57. IO::Scalar will not have the relevant methods
invoked; and even worse, this kind of bug can lie dormant for a while.
If you turn warnings on (via $^W
or perl -w
),
and you see something like this...
attempt to seek on unopened filehandle
...then you are probably trying to use one of these functions on an IO::Scalar 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
$Id: Scalar.pm,v 1.6 2005/02/10 21:21:53 dfs Exp $
David F. Skoll (dfs@roaringpenguin.com).
Eryq (eryq@zeegee.com). President, ZeeGee Software Inc (http://www.zeegee.com).
The full set of contributors always includes the folks mentioned in CHANGE LOG in the IO::Stringy manpage. But just the same, special thanks to the following individuals for their invaluable contributions (if I've forgotten or misspelled your name, please email me!):
Andy Glew,
for contributing getc()
.
Brandon Browning,
for suggesting opened()
.
David Richter,
for finding and fixing the bug in PRINTF()
.
Eric L. Brine,
for his offset-using read()
and write()
implementations.
Richard Jones,
for his patches to massively improve the performance of getline()
and add sysread
and syswrite
.
B. K. Oxley (binkley), for stringification and inheritance improvements, and sundry good ideas.
Doug Wilson, for the IO::Handle inheritance and automatic tie-ing.
the IO::String manpage, which is quite similar but which was designed more-recently and with an IO::Handle-like interface in mind, so you could mix OO- and native-filehandle usage without using tied().
Note: as of version 2.x, these classes all work like their IO::Handle counterparts, so we have comparable functionality to IO::String.
Test::Builder::IO::Scalar - A copy of IO::Scalar for Test::Builder |