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 ... }
|
---|
In Section
Seekers of Perl Wisdom