On Mon, 12 Apr 2010 13:52:16 +0200
Rene Schickbauer <rene.schickba...@gmail.com> wrote:

> Hi!
> 
> > Perl has no string length limit. You are only limited by the amount
> > of memory that is available.
> > 
> > If your program is misbehaving then I fear it is the programs error
> > (or well the person that wrote it ;-) rather then perl or any limit
> > on the length of a string.
> 
> And as for the current implementation, i think it's 2 or 4 GB
> (uint/sint index into string length?).
> 
> But basically, if you have a single scalar of that size, the perl 
> interpreters limits should be the least of your problems. If you're 
> going this way, please redesign (a single, accidental copy of a
> string has the potential to bring the system to a standstill).
> 
> But a few megabytes won't be any problem...
> ...until you do something unwise like split// and turn you scalar
> into a multi-million elements array.



I have a file of 1s and 0's that is 15689303 bytes;

running the program below takes about 10 seconds on reasonably fast dual
core with 4 GByte of RAM

===============================================================

#!/usr/bin/perl

use strict;
use warnings;

my $rng = "/home/owen/rng_formatted";
open (my $RNG, "<", "$rng") or die "$!\n";
while (<$RNG>) {
    my @bits    = split //;
    my $nr_bits = @bits;
    print "Number of bits in the file is $nr_bits\n";
}

===============================================================
o...@owen-desktop:~/P/Perlscripts$ perl beg1.pl
Number of bits in the file is 15689303

Not the best way to get the file size :-)



Owen


-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to