Some things I have noticed regarding the first and second "foreach $daynum" loops:
When I step through the first "foreach $daynum" loop with Komodo, it seems to hang on the "foreach" as each combination of $a and $b values is sorted. Stepping continues after everything is sorted. The resultant output file contains the following (as expected):
946684800|Holiday 1|Holiday 2 950486400|Holiday 3 954547200|Holiday 5 977702400|Holiday 7|Holiday 8
When stepping through the second "foreach $daynum" loop, it only takes one step before it continues on, so it appears to be faster. However, it also results in an extra key, for some reason. The resultant output file contains the following:
946684800|Holiday 1|Holiday 2 950486400|Holiday 3 954547200|Holiday 5 977702400|Holiday 7|Holiday 8 CODE(0x198f04c)
My questions:
(1) What should the "sub" be doing?
(2) Where is the "CODE(0x198f04c)" coming from?
TIA, Dalton
#!/usr/bin/perl -w use strict;
my $dayentry; my $daynum; my $dbrow;
my %dayinfo = ( 977702400 => [ "Holiday 7", "Holiday 8" ], 950486400 => [ "Holiday 3" ], 946684800 => [ "Holiday 1", "Holiday 2" ], 954547200 => [ "Holiday 5" ], );
open( DBFILE, ">dbfile1.txt" ) or die("Error: could not open \"dbfile1.txt\"\n" );
foreach $daynum (sort{$a<=>$b} keys %dayinfo ) { $dbrow = "$daynum"; foreach $dayentry (@{$dayinfo{$daynum}}) { $dbrow = join('|',$dbrow,$dayentry); } # write new data to output file print( DBFILE "$dbrow\n" ); } close( DBFILE );
open( DBFILE, ">dbfile2.txt" ) or die("Error: could not open \"dbfile2.txt\"\n" );
foreach $daynum (sort(sub{$a<=>$b}, keys %dayinfo)) { $dbrow = "$daynum"; foreach $dayentry (@{$dayinfo{$daynum}}) { $dbrow = join('|',$dbrow,$dayentry); } # write new data to output file print( DBFILE "$dbrow\n" ); } close( DBFILE );
-- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>