Hi Folks,
 
I am reading in a file in paragraph mode to suck in records that I parse out 
identifier information and then setting that record to a file handle (at least 
I think I am doing it correctly), and then using this as the file handle for 
rcols to suck in the data using an INCLUDE statement.
 
However, I am not getting the data even though it indicates that it is reading 
the correct number of data points.
 
Here is the code that I am using and some sample data.
 
******* Read in Paragraph Mode ************
 
pdl> $/ = "=====\n" ; # Set the input record separator for paragraph mode
pdl> open $fh, "<", "test.txt" or die "can't open test.txt\n" ; # open a 
filehandle in paragraph mode
pdl> while (<$fh>) { print $_; print "\nnext\n"; } # Verify that records are 
being brought in as expected.
 
Attribute Name: Sector Receive Power
TimeStamp:      2000/06/27-20:02:20.930
Source Node Id: 0x00806050
 
MO Instance: 2
Count:       20
 
 Ant 0 Rx Pwr Ant 1 Rx Pwr (1/16 dBfw)
 191 182
 190 180
 190 181
 189 181
 187 180
 186 179
 184 177
 185 177
 188 180
 190 182
 186 179
 185 179
 185 179
 184 178
 184 178
 186 179
 193 181
 196 182
 190 180
 187 179
 
=====================================================
 
next
 
******* Try in memory file handle for rcols: Attempt #1 ************
 
pdl> close $fh ; # Close the file handle to reset 
pdl> open $fh, "<", "test.txt" or die "can't open test.txt\n" ; #Re-open 
filehandle - still in paragraph mode.

pdl> while (<$fh>) { 
open $rcol, "<", \$_ or die "can't open stream\n"; #create an in memory file 
handle for rcols
($rx0, $rx1) = rcols $rcol, { INCLUDE => '/\s+\d+\s+\d+/' }; # pull out the 
data elements
close $rcol; } # close the file for the next open.
 
GLOB(0xafc73f4)Reading data into piddles of type: [ Double Double Double Double 
Double Double Double Double Double Double Double Double Double Double Double 
Double Double Double Double Double Double Double Double Double Double Double 
Double Double ]
Read in 1 elements.
Reading data into piddles of type: [ Double Double Double Double Double Double 
Double Double Double Double Double Double Double Double Double Double Double 
Double Double Double Double Double Double Double Double Double Double Double 
Double Double Double Double Double Double Double Double Double Double Double 
Double Double Double Double Double Double Double Double Double Double Double 
Double Double Double Double Double Double Double Double Double Double Double 
Double Double Double Double Double Double ]
Read in 1 elements.
Warning: rcols() did not read in any data.
pdl> p $rx0
Use of uninitialized value $_[0] in print at (eval 352) line 5, <> chunk 34.
pdl> p $rx1
Use of uninitialized value $_[0] in print at (eval 352) line 5, <> chunk 34.

 
******* Try in memory file handle for rcols: Attempt #2 ************
 
pdl> close $fh; #start again
pdl> open $fh, "<", "test.txt" or die "can't open test.txt\n"
pdl> while (<$fh>) { 
    open $rcol, "<", \$_ or die "can't open stream\n"; 
    ($rx0, $rx1) = rcols $rcol, { INCLUDE => '/\s+\d+\s+\d+/' }; 
    print "$rx0, \t $rx1\n"; # try printing out the values since I am not 
appending.
    close $rcol; }
 
Reading data into piddles of type: [ Double Double Double Double Double Double 
Double Double Double Double Double Double Double Double Double Double Double 
Double Double Double Double Double Double Double Double Double Double Double ]
Read in 1 elements.
[0],   [0]
Reading data into piddles of type: [ Double Double Double Double Double Double 
Double Double Double Double Double Double Double Double Double Double Double 
Double Double Double Double Double Double Double Double Double Double Double 
Double Double Double Double Double Double Double Double Double Double Double 
Double Double Double Double Double Double Double Double Double Double Double 
Double Double Double Double Double Double Double Double Double Double Double 
Double Double Double Double Double Double ]
Read in 1 elements.
[0],   [0]
Warning: rcols() did not read in any data.
Use of uninitialized value $rx0 in concatenation (.) or string at (eval 458) 
line 5, <> chunk 1.
Use of uninitialized value $rx1 in concatenation (.) or string at (eval 458) 
line 5, <> chunk 1.
 
 
Any ideas on what I am doing wrong? The data files that I will be parsing are 
larger than my memory so I am trying to chunk it down and use append/cat to 
grow the pdls to conserve memory. 
 
Thanks,



CLIFF SOBCHUK
Ericsson
Core RF Engineering
Calgary, AB, Canada
Phone 613-667-1974  ECN 8109 x71974 
Mobile 403-819-9233
[email protected] <mailto:[email protected]>  
yahoo: sobchuk
http://www.ericsson.com/ 

"The author works for Telefonaktiebolaget L M Ericsson ("Ericsson"), who is 
solely responsible for this email and its contents. All inquiries regarding 
this email should be addressed to Ericsson. The web site for Ericsson is 
www.ericsson.com."

This Communication is Confidential. We only send and receive email on the basis 
of the terms set out at www.ericsson.com/email_disclaimer 
<http://www.ericsson.com/email_disclaimer>  


_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl

Reply via email to