Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic

Re^3: reading from file.

by Kenosis (Priest)
on Nov 13, 2013 at 21:32 UTC ( #1062480=note: print w/replies, xml ) Need Help??

in reply to Re^2: reading from file.
in thread reading from file.

Although there are several solutions for your task, consider the following:

use warnings; use strict; my $names = 'names.txt'; my ( $found, $name ); print 'Enter a name: '; chomp( my $input = <STDIN> ); open my $fh, '<', $names or die "Cannot open $names: $!\n"; while ( $name = <$fh> ) { chomp $name; if ( $input eq $name ) { $found++; last; } } close $fh; if ($found) { print qq{The name "$input" was found.\n}; } else { print qq{The name "$input" was not found.\n}; }

Note that:

  • The name to search for is requested first.
  • chomp is used to remove the trailing input record separator (usually \n), from both the entered name and the names from the file.
  • The names' file is read once; no hash or array is necessary to 'hold' the names (Why process the list twice?). A flag's set and the while loop is immediately exited if the name is found.
  • Appropriate responses are given depending upon the value of $found.

Hope this helps!

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1062480]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (2)
As of 2022-09-28 12:20 GMT
Find Nodes?
    Voting Booth?
    I prefer my indexes to start at:

    Results (124 votes). Check out past polls.