hello, I am trying to test a key from a hash in a hash the script gives me the desired result overall but i get the warning ... Use of uninitalized value in pattern match (m//) at ./passwd.pl line 26. could someone tell me why i get this error
here is the code (this scrip looks at /etc/passwd and gets info from the desired field on a user - user and field args are passed on command line... #! /usr/bin/perl -w ## fun with hash -- no pipe needed :) $who = $ARGV[0]; $what = $ARGV[1]; unless($who && $what ){ print "Usage - passwd.pl username field\n"; print "Ex. passwd.pl root uid\n"; exit; } $file = "/etc/passwd"; open(PASS, "$file") || die "cant open file"; @array = <PASS>; close(PASS); for $i (@array){ @_ = split(/\:/, $i); @fields = qw/user pass uid gid special home shell/; $name = $_[0]; foreach $f (@fields){ $hoh{"$name"}{$f} = shift(@_); } } ## added \w test because roots uid is 0 therefor making tests false if($hoh{$who}{$what} =~ /\w/){ print "$hoh{$who}{$what}\n"; } else{ print "The combo $who and $what doesnt compute\n"; print "Try again - Bye\n"; } thanks, -- jd [EMAIL PROTECTED] Bad spellers of the world untie! "I can't tell if I have worked all my life or if I have never worked a single day of my life" Miguel de Icaza -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]