in reply to Re^2: How to read the file from stdin using perl?
in thread How to read the file from stdin using perl?
Hello again gopikavi,
Sorry for the late reply, I got busy with something that I was working on.
Back to your question, Here you had given as data1 then why it goes for else condition. Notice the difference between DATA1 and data1. The search that I am conducting is case sensitive. Which means if you want to be able to search for small case characters and the same time big case characters you need to convert the user input to small case characters with lc. But this is entirely up to you, it depends what you want to do and how flexible or strict the script should be.
For example:
#!/usr/bin/perl use strict; use warnings; use Data::Dumper; $| = 1; # turn on autoflush my $file = 'file.txt'; open my $fh, "<", $file or die "Could not open '$file': $!"; chomp(my @files = <$fh>); close $fh or die "Coould not close '$file' $!"; while (my $stdin = <>) { chomp $stdin; last if $stdin eq ""; # exit stdin if empty string if ( grep { lc $stdin eq $_ } @files ) { print Dumper \@files; } else { print "There is no word in the $file\n"; } } __DATA__ $ perl file.pl DATA1 $VAR1 = [ 'data1', 'data2', 'data3', 'data4' ]; data1 $VAR1 = [ 'data1', 'data2', 'data3', 'data4' ]; DATA100 There is no word in the file.txt
Hope this helps.
|
|---|