in reply to How to search a Name from a file and extracts its designation
Please find the code below, which meets your requirement.
#!/perl/bin/perl use strict; use warnings; use Data::Dumper; my $fname = "Designations.txt"; open (WXYZ, $fname) or die "Couldn't open file Designations.txt, $!"; while(1) # This loop is to continously get the user input. { print "Enter First Name or Last Name: \n \n"; my $user_input = <STDIN>; chomp($user_input); if(defined $user_input and length $user_input) { print "Entered name is : $user_input \n"; &find_details($user_input); seek(WXYZ,0,0); } } sub find_details{ my ($uinput) = @_; my @array; while (<WXYZ>) { chomp; next if(/\-+/ || /SLNO/); @array = split /\s+/,$_; my $input; foreach $input (@array[1,2]){ print ">>$input<<\n"; if ($input =~ /$uinput/) { print "$input,$array[3]\n"; return; } } } print ">>>>>>>>>>>>>>>>>>>>>>>>>>>Sorry! User Details not avai +lable<<<<<<<<<<<<<<<<<<<<<<<<<<\n" ; } close(WXYZ);
1. The first while loop continues runs to get the userinut and calls a find_details function if user enters valid input.
2. find_detils function reads each line and splits based on space character and saves into array, a foreach inside the function searchs your input against firstname and lastname. If user input matchs, its print the username and designation.
3.After the function return, I do seek to move the file pointer to move to the begging of the file to make the file ready to search the next input.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: How to search a Name from a file and extracts its designation
by amey (Initiate) on Jan 25, 2015 at 15:04 UTC |