Hi,
Thanks for responding to my email.
I'll look into the perlmonks list. I'm still getting used to the quirks of
perl. I was really trained in java.

I found out, since I posted this question, that the problem wasn't with the
slurping at all.
It was kind of a stupid error on my part, actually.
The way I was testing was by printing to System Out. Although in TextPad,
and in my java interpreter, the carraige return character displays as a
newline,  my perl interpreter system out ignores the carraige return , and
prints the most recent output line over the previous line. Since each line
length is the same size,  it look like it is only reading a total of one
line.

So, basically, your solution is exactly right.

Thanks,
Renee


Quoting David Graff <[EMAIL PROTECTED]>:

>
> [EMAIL PROTECTED] said:
> > I'm not sure if this is the correct group to post this question to. If
> > there is a better forum for this kind of question, please let me know.
>
> There doesn't seem to be any reference to unicode in your question, so
> it probably lacks relevance to the perl-unicode list... (You can try
> www.perlmonks.org -- they love the kind of stuff you're describing.)
>
> In any case, I have found that "typical" line-termination patterns on
> macosx depend on the application that creates the file.  I use mostly
> unix-based apps, so on my powerbook, most of my text files have just
> "\n",
> but I have seen both "\r" and "\r\n" as well.
>
> Have you tried something like this:
>
> #!/usr/local/bin/perl
>
> my $fname = "path/name_of.file";
> open( IN, $fname );
> {
>     $/ = undef;
>     $_ = <IN>;
> }
> close IN;
>
> printf("File size = %d, slurped string size = %d\n", -s $fname,
> length());
>
> __END__
>
> If things are kosher, the two numbers shown by the printf should be
> equal,
> and if that's the case, the next question is figuring out how to split $_
> into lines.  This should work for just about every case:
>
>   @lines = split /[\r\n]+/;
>
> (That will obliterate blank lines.  If it's important to keep track of
> blank lines, put parens around the regex to capture the line termination
> characters -- each string of ([\r\n]+) will be saved in @lines,
> interleaved
> between the non-empty lines that they separate.)
>
>       Dave Graff
>
>
>


Renee Halbrook
Bioinformatics Programmer
The Carnegie Institution of Washington
Department of Plant Biology
260 Panama Street
Stanford, CA 94305

Reply via email to