Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much

Re: it should be simple enough...

by ELISHEVA (Prior)
on Feb 20, 2011 at 10:31 UTC ( #889170=note: print w/replies, xml ) Need Help??

in reply to it should be simple enough...

I suspect you are confused because your final print statement emits something like $VAR1 = 'GLOB(0x817f880)'. As for why:

  • You never set the global separator to "//". You merely defined it to nothing at all. To set the record separator to "//", you do local $/='//'. That will break your input stream into records ending with '//'.
  • You never read in your file. Your split statement is attempting to split the string representation of an input handle, i.e. 'GLOB(...)', not the contents of your inputfile. To read a file into an array you need to use <$in>. To remove the '//' from the end you need to use chomp.

Your code should look something like this if you want to read in everything in one gulp:

local $/='//'; #define record separator my @records = <$in>; # read in all records chomp @records; #get rid of trailing // from each record

Or this, which reads in one record at a time and is much more memory efficient

local $/='//'; while (my $record = <$in>) { chomp $record; #remove // from end of line #... process the record ... }

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://889170]
and one hand claps...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (7)
As of 2018-04-25 14:35 GMT
Find Nodes?
    Voting Booth?