in reply to How do I safely, portably extract one or more bytes from a string?
use strict; use warnings; require 5.8.0; my $string = "......bytes...."; local $/=\1; open FH, "<", \$string or die $!; while (my $byte = <FH> ) { #do your stuff with $byte } close FH;
It relies on the fact that setting the $/ input separator to a numeric value reads in that number of bytes. It also relies on the Perl 5.8.0 or later "In-memory file" open, where you can essentially open a scalar instead of a file. You then read the scalar in byte by byte.
I wouldn't recommend it for much, but it's an interesting exercise.
Update: Thanks Anonymous Monk for catching the glitch. I knew I was forgetting something. My original code read: local $/=1;. I've now corrected my snippet.
Update 2: After some testing and re-reading the appropriate documentation, it appears that this method will work, as long as you're using it on Perl 5.8.0 or later.
Dave
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: How do I safely, portably extract one or more bytes from a string?
by Anonymous Monk on Nov 29, 2003 at 02:54 UTC | |
|
Re: Re: How do I safely, portably extract one or more bytes from a string?
by BrowserUk (Patriarch) on Nov 29, 2003 at 04:10 UTC | |
by Anonymous Monk on Nov 29, 2003 at 06:24 UTC | |
by BrowserUk (Patriarch) on Nov 29, 2003 at 13:44 UTC | |
by davido (Cardinal) on Nov 29, 2003 at 04:46 UTC | |
by BrowserUk (Patriarch) on Nov 29, 2003 at 13:42 UTC |