Sponsored Content
Top Forums Shell Programming and Scripting perl - how can we name a variable base on value of another variable Post 302359526 by varontron on Tuesday 6th of October 2009 09:39:36 PM
Old 10-06-2009
you can do it with a hash ref:
Code:
my $hashref = {};
$hashref->{var1} = 'val1';
my $var1 = $hashref->{var1};
$hashref->{$var1}= 'val2';
my $var2 = $hashref->{$var1};

print "KEYS:\n";
foreach my $key (keys %$hashref)
{
	print "key=".$key."\n";
}
print "\nVALUES:\n";
print "var1=".$var1."\n";
print "var2=".$var2."\n";

this results in
Code:
KEYS:
key=var1
key=val1

VALUES:
var1=val1
var2=val2

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Passing variable to perl

I need a non-perl (bash) way to strip the path from a list of "find" results. Below is the perl version which I could use, if I could figure out how to call the script with a variable (like in sh, $1 is the variable passed in ./script variable) $file = "/path/to/file.txt"; # How do I... (2 Replies)
Discussion started by: TheCrunge
2 Replies

2. Shell Programming and Scripting

Multiple variable in a variable in Perl

Hi All, I am trying to convert the below Csh while loop into Perl while loop but the problem is that in this csh script, i have 2 variables inside a variable -> $count is a variable {SB$count} as a whole is another variable. Csh is able to assign values to such variable like the below but i do... (3 Replies)
Discussion started by: Raynon
3 Replies

3. UNIX for Dummies Questions & Answers

variable created base on other var value

hi, i'm trying to create a script in ksh that will check build logs for errors. i'm using a variable to hold the grep, somthing like: grepErr=`echo "grep -i -e ' error ' -e ' errors ' -e 'rror(s)' -e 'Unsatisfied ' -e 'Undefined symbol' -e 'No rule ' -e 'Cannot' -e 'rror:' -e 'Could not find... (2 Replies)
Discussion started by: lavinia_f
2 Replies

4. Shell Programming and Scripting

perl get variable value ???

hi i have following code my $a1 = "A" ; my $a2 = "B" ; my $a3 = "C" ; foreach my $k ( 1,2,3 ) { my $msg = ${a{$k}} # this should be at runtime i am creating variable a1 and assigning it value to msg . print "$msg\n" ; } above thing is not working !!! i want when k = 1... (4 Replies)
Discussion started by: zedex
4 Replies

5. Shell Programming and Scripting

Perl - setting a variable ?

hi there, I have a question about a snippet of code i have which runs localtime() to convert the current date/time into a mysql happy format my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time); printf "%4d-%02d-%02d ... (4 Replies)
Discussion started by: rethink
4 Replies

6. Shell Programming and Scripting

How to define a variable with variable definition is stored in a variable?

Hi all, I have a variable say var1 (output from somewhere, which I can't change)which store something like this: echo $var1 name=fred age=25 address="123 abc" password=pass1234 how can I make the variable $name, $age, $address and $password contain the info? I mean do this in a... (1 Reply)
Discussion started by: freddy1228
1 Replies

7. Shell Programming and Scripting

PERL : Use of a variable in a tr

Hi, I want to count the number of occurences of a character in a string variable ($str). The character is stored in a another variable ($sepchr). I am using tr as : $count = ($str =~ tr/$sepchr//); This did not work. I found in another thread about using eval. I used eval as : ... (13 Replies)
Discussion started by: sinpeak
13 Replies

8. Shell Programming and Scripting

[Perl] Split lines into array - variable line items - variable no of lines.

Hi, I have the following lines that I would like to see in an array for easy comparisons and printing: Example 1: field1,field2,field3,field4,field5 value1,value2,value3,value4,value5Example 2: field1,field3,field4,field2,field5,field6,field7... (7 Replies)
Discussion started by: ejdv
7 Replies

9. Shell Programming and Scripting

Perl help - how to assign output of perl to variable

Hi, guys, i have a script i inherited from a coworker but i'm not perl savy. The script works but i would like it to work better. I want to run this command ./ciscomgrtest.pl -r "show version" -h hosts.router and have the script goto each router in the hosts.router file and run the command... (2 Replies)
Discussion started by: whipuras
2 Replies

10. Shell Programming and Scripting

PERL $0 variable

In PERL , $0 variable displays program name ( if we use inside script) .likewise is there a way to display program name and it's arguments passed to script . e.g. test.pl -a1 -b3 -c4 inside test.pl , if I use $0 , it gives me test.pl ..but I am looking for command to get complete program... (1 Reply)
Discussion started by: talashil
1 Replies
Template::Stash(3)					User Contributed Perl Documentation					Template::Stash(3)

NAME
Template::Stash - Magical storage for template variables SYNOPSIS
use Template::Stash; my $stash = Template::Stash->new(\%vars); # get variable values $value = $stash->get($variable); $value = $stash->get(@compound); # set variable value $stash->set($variable, $value); $stash->set(@compound, $value); # default variable value $stash->set($variable, $value, 1); $stash->set(@compound, $value, 1); # set variable values en masse $stash->update(\%new_vars) # methods for (de-)localising variables $stash = $stash->clone(\%new_vars); $stash = $stash->declone(); DESCRIPTION
The "Template::Stash" module defines an object class which is used to store variable values for the runtime use of the template processor. Variable values are stored internally in a hash reference (which itself is blessed to create the object) and are accessible via the get() and set() methods. Variables may reference hash arrays, lists, subroutines and objects as well as simple values. The stash automatically performs the right magic when dealing with variables, calling code or object methods, indexing into lists, hashes, etc. The stash has clone() and declone() methods which are used by the template processor to make temporary copies of the stash for localising changes made to variables. PUBLIC METHODS
new(\%params) The "new()" constructor method creates and returns a reference to a new "Template::Stash" object. my $stash = Template::Stash->new(); A hash reference may be passed to provide variables and values which should be used to initialise the stash. my $stash = Template::Stash->new({ var1 => 'value1', var2 => 'value2' }); get($variable) The "get()" method retrieves the variable named by the first parameter. $value = $stash->get('var1'); Dotted compound variables can be retrieved by specifying the variable elements by reference to a list. Each node in the variable occupies two entries in the list. The first gives the name of the variable element, the second is a reference to a list of arguments for that element, or 0 if none. [% foo.bar(10).baz(20) %] $stash->get([ 'foo', 0, 'bar', [ 10 ], 'baz', [ 20 ] ]); set($variable, $value, $default) The "set()" method sets the variable name in the first parameter to the value specified in the second. $stash->set('var1', 'value1'); If the third parameter evaluates to a true value, the variable is set only if it did not have a true value before. $stash->set('var2', 'default_value', 1); Dotted compound variables may be specified as per get() above. [% foo.bar = 30 %] $stash->set([ 'foo', 0, 'bar', 0 ], 30); The magical variable '"IMPORT"' can be specified whose corresponding value should be a hash reference. The contents of the hash array are copied (i.e. imported) into the current namespace. # foo.bar = baz, foo.wiz = waz $stash->set('foo', { 'bar' => 'baz', 'wiz' => 'waz' }); # import 'foo' into main namespace: bar = baz, wiz = waz $stash->set('IMPORT', $stash->get('foo')); clone(\%params) The "clone()" method creates and returns a new "Template::Stash" object which represents a localised copy of the parent stash. Variables can be freely updated in the cloned stash and when declone() is called, the original stash is returned with all its members intact and in the same state as they were before "clone()" was called. For convenience, a hash of parameters may be passed into "clone()" which is used to update any simple variable (i.e. those that don't contain any namespace elements like "foo" and "bar" but not "foo.bar") variables while cloning the stash. For adding and updating complex variables, the set() method should be used after calling "clone()." This will correctly resolve and/or create any necessary namespace hashes. A cloned stash maintains a reference to the stash that it was copied from in its "_PARENT" member. declone() The "declone()" method returns the "_PARENT" reference and can be used to restore the state of a stash as described above. AUTHOR
Andy Wardley <abw@wardley.org> <http://wardley.org/> COPYRIGHT
Copyright (C) 1996-2007 Andy Wardley. All Rights Reserved. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. SEE ALSO
Template, Template::Context perl v5.12.1 2009-05-20 Template::Stash(3)
All times are GMT -4. The time now is 05:15 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy