Verkettung von Variablennamen möglich ?

Verkettung von Variablennamen möglich ?

am 16.04.2006 18:20:24 von Mehmet Soysal

Hallo,
versuche grad einen Variablennamen zu bestimmen durch den Inahlt von 2
weiteren Variablen und ich weiss nicht ob es an meiner Syntax oder im
allg. nicht geht.

my $blahblub;
my $x = "blah";
my $y = "blub";

nur nun würde ich gerne den Inhalt $x und $y zu verknpüfen um z.B. dann
der variable $blahblub einen Wert zuzuweisen.
Aber wie stelle ich dass an? Also sowas in der Art, aber nicht von
meinen Versuchen funktioniert.
$x.$y =1
${$x.$y} = 1;

Am ende soll es in einer Schleife seine verwendung finden, z.B.

my @zahl = qw(eins zwei);
my @farbe = qw (blau rot);
my $einsblau;
my $einsrot;
my $zweiblau;
my $zweirot
foreach $input (@zahl){
"$input"."$farbe[1]" = 1; <<< verknpüfung der variablen
}


Geht dass so in der Form, oder kann mir jemand ne Lösung für dass
Problem sagen.

MfG
M.SOYSAL

Re: Verkettung von Variablennamen möglich?

am 16.04.2006 18:35:03 von Christian Lackas

* Mehmet Soysal [2006-04-16]:

Hallo Mehmet,

> versuche grad einen Variablennamen zu bestimmen durch den Inahlt von 2
> weiteren Variablen und ich weiss nicht ob es an meiner Syntax oder im
> allg. nicht geht.
> my $blahblub;
> my $x = "blah";
> my $y = "blub";

nimm einen Hash, z.B.

my %hash = ( blahblub => 'value of blahblub' );
my ($x,$y) = qw(blah blub);
print $hash{"$x$y"}, "\n";

Das ist der sauberste und beste Weg.

> nur nun würde ich gerne den Inhalt $x und $y zu verknpüfen um z.B. dann
> der variable $blahblub einen Wert zuzuweisen.
> Aber wie stelle ich dass an? Also sowas in der Art, aber nicht von
> meinen Versuchen funktioniert.

Mit symbolischen Referenzen kannst du sowas auch machen, aber wenn du
es noch nicht gemacht hast, dann solltest du dir das auch gar nicht erst
aneignen.

Gruß
Christian

--
#!/usr/bin/perl -s-- -export-a-crypto-system-sig -RSA-3-lines-PERL
$m=unpack(H.$w,$m."\0"x$w),$_=`echo "16do$w 2+4Oi0$d*-^1[d2%Sa
2/d0 pack('H*',$_)while read(STDIN,$m,($w=2*$d-1+length$n&~1)/2)

Re: Verkettung von Variablennamen möglich?

am 16.04.2006 19:18:55 von Christian Garbs

Mahlzeit!

Mehmet Soysal wrote:

> Geht dass so in der Form, oder kann mir jemand ne Lösung für dass
> Problem sagen.

Die Frage ist: Was willst Du überhapt machen?

Ich würde spontan sagen: Nimm einen Hash.

my %hash;
my @nummern = qw(eins zwei);
my @farben = qw(rot blau);
$hash{eins}->{rot} = "bla";
$hash{eins}->{blau} = "blubb";
$hash{zwei}->{rot} = "baz";
$hash{zwei}->{blau} = "blök";

foreach my $farbe (@farben) {
foreach my $nummer (@nummern) {
print "$nummer/$farbe=$hash{$nummer}->{$farbe}\n";
}
}

Gruß,
Christian
--
sub _{print"\n"}_;for(;$s<9;++$s){$_='1E2018201E00001E2018201E00001E2018201'
..'E002020001C2222221400005CA2A2A27C02001C2222221C20003E0402 02201F2422221C00'
..'242A2A2A12002020001C2222221F20001C2A2A2A0C';while(s;(..); ;){printf'%c',hex
$1&1<<$s?40:32}_}$_=':::Christian Garbs:',y;:;\t;;print;_;_

Re: Verkettung von Variablennamen möglich?

am 16.04.2006 21:33:49 von Matthias Peick

Christian Lackas skribis:

> Mit symbolischen Referenzen kannst du sowas auch machen, aber wenn du
> es noch nicht gemacht hast, dann solltest du dir das auch gar nicht erst
> aneignen.

Mit Erläuterung: Fehler sind dann extrem schwer zu finden.