On Tue, 2005-03-08 at 00:04 -0500, Uri Guttman wrote:
> >>>>> "AS" == Aaron Sherman <ajs-Xy/8OPi/Zy8@xxxxxxxxxxxxxxxx> writes:
>
> AS> On Mon, 2005-03-07 at 15:33 -0500, Uri Guttman wrote:
>
> >> >>>>> "AS" == Aaron Sherman <ajs-Xy/8OPi/Zy8@xxxxxxxxxxxxxxxx> writes:
>
> >> see what i do in File::Slurp. i wanted a single error handling sub but
> >> also to have the croak in there report back from the original call (say
> >> read_file).
>
> AS> Tried that. Problem is File::Copy is the kind of thing that's going to
> AS> be called often and fast, and there's nothing short of an eval that
> AS> stops performance dead more than an subroutine call in Perl. Ah, Perl 6,
> AS> where are you?
>
> did you do magic goto? it shouldn't be slow at it doesn't touch the
> stack nor mung @_.
I've tried that. It helps, but sub overhead is still deadly all on its
own, even without stack manipulation.
Annoyingly, now that I go try to test it to see if it's still the same,
I find that goto &foo breaks Benchmark :-(
> i haven't benchmarked that aspect but file::slurp is
> pretty fast. you could do worse than writing file::copy as
>
> write_file( $to, read_file( $from ) ) ;
Check out File::Copy. It does basically that. With tons of special
cases, of course, but still. It has a buffer (user-sizable), which it
reads into in a single sysread, and then writes out to the new file,
repeat until done. If you set the buffer size to >= the input file size,
you have a slurp.
> AS> Like I say, it'll be a (not so) fond memory once P6 takes over the
> AS> world.
>
> i am waiting patiently (really!).
I see that nail biting!
Of course, people are starting to make library-writing noises now that
PUGS exists, so P6 can't be THAT far off....
|