Visit Our UNIX and Linux User Community


perl - how can we name a variable base on value of another variable


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting perl - how can we name a variable base on value of another variable
# 1  
Old 10-06-2009
perl - how can we name a variable base on value of another variable

Hey all,

perl - how can we name a variable base on the value of another variable?

for example in ksh/bash we do :

export c="100"
export x`echo $c`=2000
echo $x100
x100=2000

is it possible to do something similar for perl?

I already tried many ways but nothing is working.

I am trying to solve a issue in an perl script and the solution that i am trying to do should have different variables.

Can someone please help me on this?

Thanks in advance.
Carlos
# 2  
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

# 3  
Old 10-07-2009
Code:
perl -e 'my $x= 100;
> ${x.$x} = 2000;
> print "$x \n";
> print "$x100 \n";
> '
100
2000

Note: This is not a standard method of doing. When requirement like these arises it is preferable to use hashes

Cheers

Last edited by pludi; 10-07-2009 at 03:16 AM.. Reason: code tags, please
# 4  
Old 10-07-2009
Thank you guys!!
It is working Smilie

Previous Thread | Next Thread
Test Your Knowledge in Computers #444
Difficulty: Easy
Scientific Linux is an Enterprise Linux rebuild sponsored by Fermi National Accelerator Laboratory.
True or False?

10 More Discussions You Might Find Interesting

1. 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

2. 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

3. 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

4. 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

5. 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

6. 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

7. 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

8. 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

9. 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

10. 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

Featured Tech Videos