in reply to Re^2: Search a hash for STDIN and report findings
in thread Search a hash for STDIN and report findings
If you want to know the values of your hash, here's a little trick:
use Data::Dumper; my %passwords; # please don't name your data structure # %new_hash. That's not a telling name at # all while(1) { print "Please enter your first name\n"; chomp ($fname =<STDIN>); { last; } print "Please enter your last name\n"; chomp ($lname =<STDIN>); { last; } print "Please enter a password\n"; chomp ($password =<STDIN>); { last; } print "Please enter 'done' or hit your return key\n"; chomp ($ending =<STDIN>); if ($ending eq '\n' or 'done') { last; } } my $username = "$lname, $fname"; # here comes the magic: print Dumper \%passwords; # you'll see that the hash # is empty. # rest of the script goes here
You have to actually store the passwords:
while(1) { print "Please enter your first name\n"; chomp ($fname =<STDIN>); { last; } print "Please enter your last name\n"; chomp ($lname =<STDIN>); { last; } print "Please enter a password\n"; chomp ($password =<STDIN>); { last; } # important: store the passwords in %passwords $passwords{$fname} = $password; print "Please enter 'done' or hit your return key\n"; chomp ($ending =<STDIN>); if ($ending eq '\n' or 'done') { last; } }
Additionally the usual tips apply: always use strict; use warnings and declare your variables.
To answer your original question: to achieve case insensitivity, use lc or uc to convert the strings (for example first name) to all lower or all upper case, and only then store them.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: Search a hash for STDIN and report findings
by toolic (Bishop) on Feb 07, 2008 at 19:46 UTC | |
by moritz (Cardinal) on Feb 07, 2008 at 21:08 UTC | |
by trenchwar (Beadle) on Feb 07, 2008 at 21:35 UTC | |
|
Re^4: Search a hash for STDIN and report findings
by trenchwar (Beadle) on Feb 07, 2008 at 21:09 UTC |