Sponsored Content
Full Discussion: Hashes help in Perl
Top Forums Shell Programming and Scripting Hashes help in Perl Post 302301310 by KevinADC on Thursday 26th of March 2009 01:11:14 PM
Old 03-26-2009
I generally do not write any code for someone that has demonstrated no effort to first try and solve, or to at least start, there own code. But here something that is meant only as an example of how to create a hash of hash of arrays from your log file:

Code:
my %hash;
while(<DATA>){
   chomp;
   my ($domain,$page,$h,$m) = split(/[\/:]/);
   push @{$hash{$domain}{$page}},"$h:$m";
}
foreach my $domain (keys %hash) {
   print "$domain\n";
   foreach my $page (keys %{$hash{$domain}}){
      print "\t$page @{$hash{$domain}{$page}}\n";
   }
}
__DATA__
www.google.com/test1.asp:11:27
www.google.com/test2.asp:11:27
www.google.com/test2.asp:11:27
www.google.com/test2.asp:11:28

There are any number of data strucutes you could try and use, which one you eventually use depends on your programming requirements. A more complete hash of hashes/arrays might be better suited for the purpose but I like to keep data structures as simple as possible for the task at hand. If you know you will need to scale up the program in the future you could add any fields to the data structure now that will be used later.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

perl: hashes, whiles, and last

hello everyone, i am creating 2 hashes from 2 different files, then looking for the value of one in the value of the other to make a new file. for example: file1: DENV => Denver file2: H224-0A-12 => DENVER if Denver is found in DENVER (case insensitive), a new hash now contains H224-0A-12... (0 Replies)
Discussion started by: effigy
0 Replies

2. Shell Programming and Scripting

How to declare hashes in KSH similar to Perl ?

Hi, Is it possible to delcare hashes in KSH the way we do it in Perl. Like I want to declare something like: fruits="Juicy" fruits="healthy" fruits="sour" echo fruits Ofcourse this piece of code does not work in KSH. Please let me know if there is a way of doing it in KSH. ... (2 Replies)
Discussion started by: tipsy
2 Replies

3. Shell Programming and Scripting

perl hashes question

hi guys im running into a problem here this is my script #!/usr/bin/perl use CGI qw(:standard); $header = "MIME-Version: 1.0\n"; $header .= "Content-type: text/html\n"; $header .= "\n"; #get the point parameter from nhl.html $Team = param("points"); print "$header"; open(INFILE,... (1 Reply)
Discussion started by: lucho_1
1 Replies

4. Shell Programming and Scripting

Perl Hashes, reading and hashing 2 files

So I have two files that I want to put together via hashes and am having a terrible time with syntax. For example: File1 A apple B banana C citrusFile2 A red B yellow C orangeWhat I want to enter on the command line is: program.pl File1 File2And have the result... (11 Replies)
Discussion started by: silkiechicken
11 Replies

5. Shell Programming and Scripting

perl hash of hashes from database

hi there, I have some database output that looks like this SELECT nic_name,nic_duplex,nic_speed,nic_ip FROM network_table WHERE hostname = "server1" result is this (ive delimited with a pipe for ease of reading) bge0|full|1000|10.32.100.1 bge1|full|1000|11.12.101.7 ... (1 Reply)
Discussion started by: hcclnoodles
1 Replies

6. Shell Programming and Scripting

PERL - printing a hash of hashes to screen

Hi there I have a hash of hashes made up of the following data bge0|100|half|10.36.100.21 bge1|1000|full|10.36.100.22 bge2|1000|full|10.36.100.23 which when i turn into a hash, would look like this inside the system bge0 -> nic_speed -> 100 nic_duplex -> half ... (6 Replies)
Discussion started by: hcclnoodles
6 Replies

7. Shell Programming and Scripting

PERL - another quick hash of hashes question

Hi, sorry, two hash related questions in one day .. but this has got me a bit stuck. I have a mysql database table that kind of looks like this, the table is called "view1" and a snippet of that table (SELECT'ing just rows with serial number 0629AN1200) is below serial nic_name ... (2 Replies)
Discussion started by: hcclnoodles
2 Replies

8. Shell Programming and Scripting

perl: dereferencing a hash of hashes

Hi there, I am trying to dereference my hash of hashes but post dereferencing, it seems to lose its structure I am using Data::dumper to help me anaylise. This is the code im using to build the HoH, (data comes from a file). I have also performed a Dumper on the data structure before and after... (1 Reply)
Discussion started by: rethink
1 Replies

9. Shell Programming and Scripting

Perl : array of hashes help

Hi, I have array of hashes and each key has array like below. @array1 = ( { 'url' => , 'bill' => }, { 'url' => , 'bill' => }, { 'url' => , ... (0 Replies)
Discussion started by: ragilla
0 Replies

10. Shell Programming and Scripting

Perl hash of hashes anonymous array

Hello experts. I'm having problems with a snippet of code. I was hoping to get help/advice to correct. A file that this script parses has changed to the point where I can no longer use a scalar, it looks as though I need to create an array for a hash of hashes below. The first output of... (1 Reply)
Discussion started by: timj123
1 Replies
HASHSTASH(3)						 libbash hashstash Library Manual					      HASHSTASH(3)

NAME
hashstash -- libbash library that implements hash data structure SYNOPSIS
hashSet <Value> <Key> <HashName> [SubHashName [...]] $retval hashGet <Key> <HashName> [SubHashName [...]] $retval hashKeys <HashName> [SubHashName [...]] hashRemove <Key> <HashName> [SubHashName [...]] hashDelete <HashName> [SubHashName [...]] DESCRIPTION
General hashstash is a collection of functions that implement basic hash data-structure in bash scripting language. The function list: hashSet Adds a value to the hash hashGet Returns a value from the hash hashKeys Returns a list of keys of the hash hashRemove Removes a key from the hash hashDelete Deletes a hash Detailed interface description follows. FUNCTIONS DESCRIPTIONS
hashSet <Value> <Key> <Hashname> [SubHashName [...]] Adds a value to the hash. Parameters: <Value> The value to set in HashName[Key]. <Key> The key for the value Value. <HashName> [SubHashName [...]] A string that contains the name of the hash. If the hash is a sub hash of another hash, the "father hash" name MUST BE WRITTEN FIRST, followed by the sub-hash name. Value will be the value of the key Key in the hash HashName. For example if you have (or want to define) hash C, which is subhash of hash B, which is subhash of hash A, and C has a key named ckey1 with value cval1, then you should use: hashSet cval1 ckey1 A B C $retval hashGet <Key> <HashName> [SubHashName [...]] Returns the value of Key in HashName to the $retval variable. Parameters: <Key> The key that hold the value we wish to get. <HashName> [SubHashName [...]] A string that contains the name of the hash. If the hash is a sub hash of another hash, the "father hash" name MUST BE WRITTEN FIRST, followed by the sub-hash name. Return Value: The value of the key Key in the hash HashName. The value is returned in the variable $retval. $retval hashKeys <HashName> [SubHashName [...]] Returns a list of keys of the hash HashName in the variable $retval. Parameters: <HashName> [SubHashName [...]] A string that contains the name of the hash. If the hash is a sub hash of another hash, the "father hash" name MUST BE WRITTEN FIRST, followed by the sub-hash name. Return Value: The value of the key Key in the hash HashName. The value is returned in the variable $retval. hashRemove <Key> <HashName> [SubHashName [...]] Removes the key Key from the hash HashName. <Key> The key we wish to remove from HashName. <HashName> [SubHashName [...]] A string that contains the name of the hash. If the hash is a sub hash of another hash, the "father hash" name MUST BE WRITTEN FIRST, followed by the sub-hash name. This function should also be used to remove a sub-hash from its "father hash". In that case, the key will be the name of the sub-hash. hashDelete <HashName> [SubHashName [...]] Deletes the hash HashName [SubHashName [...]]. Parameters: <HashName> [SubHashName [...]] A string that contains the name of the hash. If the hash is a sub hash of another hash, the "father hash" name MUST BE WRITTEN FIRST, followed by the sub-hash name. If this function is used on a sub-hash, a key with the name of the sub-hash will remain in its "father hash" and will hold a NULL value. BUGS
A hash name can only contain characters that are valid as part of bash variable names (i.e. a-zA-Z0-9_). The same applies for hash keys. As for now, there is no way of knowing if a key represents a value or a sub-hash. If a sub-hash will be used as a key, the returned value will be its keys list. EXAMPLES
Define hash table hashA with key Akey1 with value Aval1 use: % hashSet Aval1 Akey1 Ahash Now: % hashGet Akey1 Ahash % echo $retval Aval1 % hashKeys Ahash % echo $retval Akey1 % HISTORY
The idea to write hashstash library appeared when we've discovered the full power of the bash eval function. As of the name hashstash, it has two meanings. The first, it means 'stash' of hash functions. The second is, that hashstash contains sub- hashes inside, so it looks like stash of packed information. AUTHORS
Hai Zaar <haizaar@haizaar.com> Gil Ran <gil@ran4.net> SEE ALSO
ldbash(1), libbash(1) Linux Epoch Linux
All times are GMT -4. The time now is 11:29 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy