Thanks, Guys.

T.

Sent from my iPhone

On 2013-02-22, at 6:51 PM, *Shaji Kalidasan* <shajiin...@yahoo.com> wrote:

> Greetings,
> 
> Tiago, adding to Jim's and Andy's wisdom. Here is the complete code snippet
> 
> [code]
> use strict;
> use warnings;
> 
> unless(@ARGV == 1) {
>     die "Usage : $0 <filename>\n";
> }
> 
> my $file = shift;
> my $fin = IO::File->new($file, 'r') or die "Cannot open file for read ($!)";
> $fin->binmode(":raw");
> my $content = do { local $/; <$fin> };
> 
> my $cr = $content =~ tr/\r/\r/;
> my $lf = $content =~ tr/\n/\n/;
> my $crlf = $content =~ s/\r\n/\r\n/g;
> 
> $fin->close();
> 
> $cr -= $crlf;
> $lf -= $crlf;
> 
> if(($cr == 0) && ($lf == 0) && ($crlf != 0)) {
>     print "DOS/Windows";
>     #Do Something
> } elsif (($cr == 0) && ($lf != 0) && ($crlf == 0)) {
>     print "Unix/Linux";
>     #Do Something
> } elsif (($cr != 0) && ($lf == 0) && ($crlf == 0)) {
>     print "Mac";
>     #Do Something
> } else {
>     print "Binary file";
>     #Do Something
> }  
> [/code]
> 
> [output]
>> ./demo.pl important01.txt
> Mac
>> ./demo.pl important02.txt
> Unix/Linux
>> ./demo.pl important03.txt
> DOS/Windows
>> ./demo>demo.pl eagle.jpg
> Binary file
> [/output]
> 
> Note: The following file format is fed into the command line. The file 
> important01 is of type Mac Line Endings, important02.txt is of Unix Line 
> Endings, important03.txt is of Windows Line Endings and finally eagle.jpg is 
> of type Binary
>  
> best,
> Shaji 
> -------------------------------------------------------------------------------
> Your talent is God's gift to you. What you do with it is your gift back to 
> God.
> -------------------------------------------------------------------------------
> 
> 
> ----- Original Message -----
> From: Jim Gibson <jimsgib...@gmail.com>
> To: Perl Beginners <beginners@perl.org>
> Cc: 
> Sent: Saturday, 23 February 2013 5:20 AM
> Subject: Re: Line Endings
> 
> 
> On Feb 22, 2013, at 10:40 AM, Andy Bach wrote:
> 
>> On Fri, Feb 22, 2013 at 12:08 PM, Tiago Hori <tiago.h...@gmail.com> wrote:
>> 
>>> What I was wondering is: is there any way to force perl to use other line
>>> ending characters, like MacOS CR?
> 
> Another approach is to read the entire file into a scalar and then split on 
> the regular expression [\r\n]+
> 
> Read the file into a scalar:
> 
>   my $content = do { local $/; <$fh> };
> 
> or using the File::Slurp module:
> 
>   my $content = read_file($filename);
> 
> Then split into lines:
> 
>   my @lines = split(/[\r\n]+/,$content);
> 
> You do end up with two copies of the file contents, so this method is not 
> efficient in terms of memory usage.
> 
> 
>   
> --
> To unsubscribe, e-mail: beginners-unsubscr...@perl.org
> For additional commands, e-mail: beginners-h...@perl.org
> http://learn.perl.org/
> 
> -- 
> To unsubscribe, e-mail: beginners-unsubscr...@perl.org
> For additional commands, e-mail: beginners-h...@perl.org
> http://learn.perl.org/
> 
> 

--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to