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.
Seeking for Perl wisdom...on the process of learning...not there...yet!
|