Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery

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 ... }

Comment on Re: it should be simple enough...
Select or Download Code

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://889170]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (9)
As of 2014-11-27 00:46 GMT
Find Nodes?
    Voting Booth?

    My preferred Perl binaries come from:

    Results (178 votes), past polls