Oh, okay.  I thought you just weren't sure how to access the data.

print "Enter your username: ";
chomp($input = <STDIN>);
if($users{$input}){
        print "Welcome, $input.\n";
        foreach(sort keys %{$users{$input}}){
                print "   $_ owes ${$users{$input}}{$_}\n";
        }
}else{
        print "Incorrect Username!\n";
}

-----Original Message-----
From: Daniel Falkenberg [mailto:[EMAIL PROTECTED]]
Sent: Monday, March 25, 2002 7:00 PM
To: Timothy Johnson
Subject: RE: Can I set this as a hash?


Thats all good Tim, but what I am really looking at doing is something
like the following...

print "Enter your username:";
chop ($find=<STDIN>);

print "You are searching for $find...?\n";

# Now go and search through every $users{$username} and seee if $find =
$users{$username}.  If it does match # then display $company from
$users{$find}{$company} and $owing from $users{$find}{$company}{$owing}.
Is # # this even possible?

Kind Regards,

Dan

-----Original Message-----
From: Timothy Johnson [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, 26 March 2002 1:14 PM
To: Daniel Falkenberg; Matthew Harrison
Cc: [EMAIL PROTECTED]
Subject: RE: Can I set this as a hash?



Try this:

foreach $key(sort keys %users){
        foreach $inkey(sort keys %{$users{$key}}){
                print "$key, ${$users{$key}}{$inkey}\n";
        }
}

-----Original Message-----
From: Daniel Falkenberg [mailto:[EMAIL PROTECTED]]
Sent: Monday, March 25, 2002 6:23 PM
To: Matthew Harrison
Cc: [EMAIL PROTECTED]
Subject: RE: Can I set this as a hash?


Hmmmmm, yes I was thinking of that but I have gone against it.  After
tweaking around with my code I was able to insert all the date into a
hash...

%users = (
           'Username1' => {
                        'Comapny1' => 'owing1'
                      },
           'Username2' => {
                          'Company2' => 'owing2'
                        },
           'Username3' => {

                       'Company3' => 'owing3'
                                }
);

This now works perfectly.  Just this once it is going to be easier for
me to do it with a hash rather than setting it up in a mySQL or Postfix
db.

I do however have one more question.  If I have a user enter their
username i.e $user_stdin - <STDIN>;. How can I get my script to search
through each Username in my hash and then display the Company and how
much they have owing?  Any ideas on this?

Kind regards,

Dan

-----Original Message-----
From: Matthew Harrison [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, 26 March 2002 12:27 PM
To: Crook, Richard W
Cc: [EMAIL PROTECTED]
Subject: RE: Can I set this as a hash?


That is exactly my stand too. I have found it much easier to learn some 
simple and re-useable MySQL functions using the DBI module, than to
learn 
regex and all the other crap associated with manipulating strings etc.

On Mon, 25 Mar 2002, Crook, Richard  W wrote:

> Well from a beginner's point of view, plus the KISS priciple I'd say
you
> should keep your data in a database like MySQL. You would then
organize the
> data by:
> 
> USERNAME   FULLNAME   COMPANY   OWING
> username1  fullname1  company1  owing1
> username2  fullname2  company2  owing2
> 
> Where you access the data for each person via the unique username. 
> If you still want to use PERL then maybe you should keep the data in a
> seperate file and parse though it instead of keeping the data in a
> multidemensional hash.
> 
> -----Original Message-----
> From: Daniel Falkenberg [mailto:[EMAIL PROTECTED]]
> Sent: Monday, March 25, 2002 5:38 PM
> To: Timothy Johnson
> Cc: [EMAIL PROTECTED]
> Subject: RE: Can I set this as a hash?
> 
> 
> I am still new to Perl as well.
> 
> I want the end result to look like the following...
> 
> USERNAME   FULLNAME   COMPANY   OWING
> username1  fullname1  company1  owing1
> username2  fullname2  company2  owing2
> 
> and so on....
> 
> Then I need for a user to type in their username and I need my script
to
> be able to extract the rest of the data such as if the user enters
> username1 as their username I need to display...
> 
> fullname1  company1  owing1.
> 
> Does this make sense?
> 
> Regards,
> 
> Dan
> 
>  
> 
> -----Original Message-----
> From: Timothy Johnson [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, 26 March 2002 11:46 AM
> To: 'Matthew Harrison'; Daniel Falkenberg
> Cc: [EMAIL PROTECTED]
> Subject: RE: Can I set this as a hash?
> 
> 
> 
> Or perhaps a list of lists... Maybe you should describe your HOH
better.
> What do you want the end result to look like?
> 
> -----Original Message-----
> From: Matthew Harrison [mailto:[EMAIL PROTECTED]]
> Sent: Monday, March 25, 2002 5:18 PM
> To: Daniel Falkenberg
> Cc: [EMAIL PROTECTED]
> Subject: Re: Can I set this as a hash?
> 
> 
> I know i'm still only learning perl so feel free to ignore me if i've
> said 
> something stupid, but wouldn't tha be better as a list instead of a
> hash?
> 
> On Tue, 26 Mar 2002, Daniel Falkenberg wrote:
> 
> > Hello All,
> > 
> > Just wondering how I would go about setting up the following hash
and
> if
> > it would be wise to do it this way?
> > 
> > I have the following data...
> > 
> > $username $company $fullname $owing
> > 
> > I want to place all of this in a hash of a hash...
> > 
> > %name_of hash = 
> >                  "Username1" => "Company1" => "$fullname1" =>
"$owing"
> > 
> > So basically I want to populate the hash with the above data.  Here
is
> > there perl code I have so far...
> > 
> > #!/usr/bin/perl -w
> > 
> > use Data::Dumper;
> > 
> > 
> > $FILE_NAME = "vintekdb_query_250302.txt";
> > $USER_DATA = "/var/www/cgi-bin/$FILE_NAME";
> > 
> > sub read_data {
> >   open USER_DATA, "$USER_DATA" or warn "cannot open '$USER_DATA' for
> > reading: $!\n";
> >   flock(USER_DATA, 2) || warn "Can't lock $USER_DATA exclusively:
$!";
> >   while( $USER_DATA=<USER_DATA> ) {
> >     @USER_DATA = split (/,/, $USER_DATA);
> >     s/^"|"$//g foreach @USER_DATA;
> >     $username = $USER_DATA[0];
> >     $fullname = $USERDATA[1];
> >     $company  = $USERDATA[2];
> >     $owing    = $USERDATA[3];
> >     #CREATE HASH OF HASH HERE
> >     }
> >   }
> >   close USER_DATA;
> >   return %users; #NAME OF HASH
> > }
> > 
> > read_data();
> > 
> > Does any one have any ideas on how I would go about this?  Is this
> even
> > the best way to do something like this?
> > 
> > Regards,
> > 
> > Dan
> > 
> > 
> 
> 

-- 
Matthew Harrison
Internet/Network Services Administrator
Peanut-Butter Cheesecake Hosting Services
Genestate
www.peanutbuttercheesecake.co.uk


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


------------------------------------------------------------------------
--------
This email may contain confidential and privileged 
material for the sole use of the intended recipient. 
If you are not the intended recipient, please contact 
the sender and delete all copies.


--------------------------------------------------------------------------------
This email may contain confidential and privileged 
material for the sole use of the intended recipient. 
If you are not the intended recipient, please contact 
the sender and delete all copies.

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to