How to load a hash with a file in Perl


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to load a hash with a file in Perl
# 1  
Old 01-28-2011
How to load a hash with a file in Perl

Hi to everybody.

I have a script in AWK with a revursive function, when I make the recursive call I'm loosing values in the local variables. So I'm trying to do the script in Perl, but I don't know Perl.

I want to load several hashes with the data in a pipe separated file. In AWK it looks like

Code:
NR==FNR{
  fun_arc[$2]=$1
  arc_fun[$1]=$2
  sinLlamar[$1]
  llamar[$1]
  next
}

And in Perl

Code:
open (arch, "<FuncXArch.txt.analisis2.fil") || die "No se puede abrir el archivo directorio de definicion de funciones";
while (<arch>){
  chomp;
  @campos=split(/\|/);

  $fun_arc{$campos[2]}=$campos[1];
  $arc_fun{$campos[1]}=$campos[2];
  $sinLlamar{$campos[1]}="";
  $llamar{$campos[1]};
}
close arch;

for ( ($k, $v) = each %sinLlamar ){
  print "Funcion sin llamar [$k]\n"
}

When I print the content in hash it just show two values and are the same value. Where is my mystake?

Thanks in advance.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

Perl: restrict perl from automaticaly creating a hash branches on check

My issue is that the perl script (as I have done it so far) created empty branches when I try to check some branches on existence. I am using multydimentional hashes: found it as the best way for information that I need to handle. Saing multidimentional I means hash of hashes ... So, I have ... (2 Replies)
Discussion started by: alex_5161
2 Replies

2. Programming

Perl: How to load some functions automaticaly, starting Perl inteructively (with -d -e 0)?

I would like to use Perl in 'interactive' mode (kind off), starting it by > perl -d -e 0; But I need to have some function be read on loading. Also, it should not be for anyone who starting Perl or use it any how. I did try to search, but not much result. I have try a file '.perldb':... (1 Reply)
Discussion started by: alex_5161
1 Replies

3. Shell Programming and Scripting

Compare values of hashes of hash for n number of hash in perl without sorting.

Hi, I have an hashes of hash, where hash is dynamic, it can be n number of hash. i need to compare data_count values of all . my %result ( $abc => { 'data_count' => '10', 'ID' => 'ABC122', } $def => { 'data_count' => '20', 'ID' => 'defASe', ... (1 Reply)
Discussion started by: asak
1 Replies

4. Shell Programming and Scripting

Perl script to Archive the data file after the load

I have written a perl scripts which loads the data. Now i want to modify the script, to Archive the Input file after the successful load of data. Can anyone please share it and help me .... Thanks. (2 Replies)
Discussion started by: msrahman
2 Replies

5. UNIX for Advanced & Expert Users

perl text file processing using hash

Hi Experts, I have this requirement to process large files (200MB+).Format of files is like: recordstart val1 1 val2 2 val3 4 recordstart val1 5 val2 6 val3 1 val4 1 recordstart val1 ... (4 Replies)
Discussion started by: mtomar
4 Replies

6. Shell Programming and Scripting

perl hash - using a range as a hash key.

Hi, In Perl, is it possible to use a range of numbers with '..' as a key in a hash? Something in like: %hash = ( '768..1536' => '1G', '1537..2560' => '2G' ); That is, the range operation is evaluated, and all members of the range are... (3 Replies)
Discussion started by: dsw
3 Replies

7. Shell Programming and Scripting

Perl Hash:Can not keep hash data in the same order that it was inserted

Can Someone explain me why even using Tie::IxHash I can not get the output data in the same order that it was inserted? See code below. #!/usr/bin/perl use warnings; use Tie::IxHash; use strict; tie (my %programs, "Tie::IxHash"); while (my $line = <DATA>) { chomp $line; my(... (1 Reply)
Discussion started by: jgfcoimbra
1 Replies

8. Shell Programming and Scripting

PERL: reading 2 column data into Hash file

I am trying to read in a 2 column data file into Perl Hash array index. Here is my code. #!/usr/bin/perl -w use strict; use warnings; my $file = "file_a"; my @line = (); my $index = 0; my %ind_file = (); open(FILE, $file) or die($!); while(<FILE>) { chomp($_); if ($_ eq '') { ... (1 Reply)
Discussion started by: subhap
1 Replies

9. Shell Programming and Scripting

perl hash

Hi i am reading one file and creating Hash from the contents of it my issue is there are 3 different files in 3 different locations having same structure so for parsing these files i have one subroutine which returns hash after reading all the 3 files i need to create consolidated hash from three... (2 Replies)
Discussion started by: zedex
2 Replies

10. Shell Programming and Scripting

Perl script to load text file into DB field

Hello, maybe this post is offtopic, sorry for the inconveniencies (maybe should be in the forum with questions about C, C++, Java, SQL...). I found examples about how to populate different fields from a text file (with MySQL, the LOAD DATA INFILE sentece), but not about how to load a complete... (2 Replies)
Discussion started by: aristegui
2 Replies
Login or Register to Ask a Question
INN::Config(3pm)					    InterNetNews Documentation						  INN::Config(3pm)

NAME
INN::Config - Export all the variables an INN Perl script might need DESCRIPTION
This Perl module sets up any and all the variables that an INN Perl script might need. More particularly, it allows to use inn.conf variables: they are all provided by innconfval, as well as the version of INN (in the variable $INN::Config::VERSION for its short number form, on in $INN::Config::version for its complete form). Other useful variables are also provided (directories, files, programs, masks, parameters). The complete list can be obtained with the following script that prints them out: use lib '<pathnews>/lib/perl'; use INN::Config; use Data::Dumper; my ($varname, $value); foreach my $var (@INN::Config::EXPORT_OK) { if ($var =~ /^$(.*)$/) { $varname = "INN::Config::$1"; $value = Dumper($$varname); $value =~ s/^$VAR1 = //; print "$$varname = $value"; } elsif ($var =~ /^@(.*)$/) { $varname = "INN::Config::$1"; $value = Dumper(@$varname); $value =~ s/^$VAR1 = //; print "@$varname = $value"; } } A local Perl script named innshellvars.pl.local in pathetc will be loaded, if present and executable, at the end of the run of this module. A typical use is to add or override variables. You only have to declare the module at the beginning of them: use lib '<pathnews>/lib/perl'; use INN::Config; Then, you can for instance use: print $INN::Config::localmaxartsize; to print the value of localmaxartsize as it is set in inn.conf. You can also specify a version when you import the module. If you write: use INN::Config 2.5.0; only versions of INN superior to 2.5.0 will be able to run the Perl script. It is also possible to import the variables directly in your namespace if you specify what you want to import: use INN::Config qw($localmaxartsize $pathbin); Note that a legacy innshellvars.pl is also provided in pathnews/lib for compatibility reasons with old Perl scripts not shipped with INN. It was used by versions of INN anterior to 2.5.0. The corresponding scripts for Shell and Tcl are, however, still in use: innshellvars and innshellvars.tcl. They offer the same capabilities as this module. HISTORY
innshellvars.pl was written by James Brister <brister@vix.com> for InterNetNews in 1996. It was converted to the INN::Config Perl module by Julien Elie in 2007. $Id: Config.pm.in 9311 2011-08-06 20:18:42Z iulius $ SEE ALSO
inn.conf(5), innconfval(1), perl(1). INN 2.5.3 2011-08-22 INN::Config(3pm)