in reply to Re^3: 3-byte representation
in thread 3-byte representation
Add binmode OUT after the open.
Also,
- you should be using a mode of '>' not '>>', unless your intention is to append to an existing file.
- for($i=1;$i<10001;$i++){ is more easily and clearly written as for my $i ( 1 .. 10000 ) {
- int(rand(20000))+440000 produces always positive integer.
If you don't need signed integers, your question would have been much simpler to answer.
- $k=substr(pack('l>',$j),1); print OUT $k;
Packing and writing one value at a time is hugely expensive compared to packing all 10000 values in a single pass and then writing them once.
- For goodness sake, use a little horizontal whitespace.
Don't you find this infinitely more readable?
#!/usr/bin/perl use strict; print "Content-type: text/html\n\n"; srand(); my $fil = "ch"; open( OUT, '>', $fil ) or die $!; binmode OUT; for my $i ( 1 .. 10_000 ) { my $j = int( rand( 20_000 ) ) + 440_000; my $k = substr( pack( 'l>', $j ), 1 ); print OUT $k; } close( OUT ); print "DONE !";Remember that your source code is the equivalent of the professional chef's plated up meal.
His presentation is what makes the difference between a paid for cover and a decent home cooked meal. It is both his edge and his profit margin.
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^5: 3-byte representation
by gerleu (Novice) on Oct 13, 2011 at 14:21 UTC | |
by BrowserUk (Patriarch) on Oct 13, 2011 at 15:40 UTC | |
by gerleu (Novice) on Oct 13, 2011 at 16:36 UTC | |
by BrowserUk (Patriarch) on Oct 13, 2011 at 16:42 UTC | |
by gerleu (Novice) on Oct 13, 2011 at 17:02 UTC |
In Section
Seekers of Perl Wisdom