---
title: "Omvandla variabel."
type: "forum-thread"
url: "https://www.webforum.nu/amne/perl-ruby/19344-omvandla-variabel"
topic: "Perl & Ruby"
topic_url: "https://www.webforum.nu/amne/perl-ruby"
author: "cgi"
published: "2001-04-19T22:47:00.000Z"
updated: "2001-04-30T17:04:00.000Z"
replies: 28
views: 347
page: 1
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/perl-ruby/19344-omvandla-variabel"
---

# Omvandla variabel.

_Sida 1 av 2._

## #1 — cgi, 2001-04-19T22:47Z

Borde inte detta funka för att omvandla en variabel:?

while ($info-\>{'inlagg'}) {
$\_ =\~ s/\\\[namn\\\]/$row\[1\]/ig;
push (@inlagg,$\_);
}
print "@inlagg";

Permalänk: https://www.webforum.nu/p/19344

## #2 — cgi, 2001-04-20T19:16Z

Ingen som har kunskap i detta.?

Permalänk: https://www.webforum.nu/p/341805

## #3 — Peter_B, 2001-04-20T22:02Z

vad är egentligen 

$info-\>{'inlagg'} 

för någonting?

Permalänk: https://www.webforum.nu/p/341806

## #4 — cgi, 2001-04-20T22:07Z

$info-\>{'inlagg'} är information från databasen,
koden funkar om jag hämtar informationen ifrån en vanlig textfil,
while (\<INFO\> ) {
men inte ifrån en riktig databas,
du kanske har en bättre lösning på detta?

Permalänk: https://www.webforum.nu/p/341807

## #5 — Peter_B, 2001-04-21T10:47Z

jag är lite osäker på din while-slinga...

om du använder DBI för att prata med databasen kan du säga:

while (my $p = $sth-\>fetchrow_hashref())

istället.

Permalänk: https://www.webforum.nu/p/341808

## #6 — cgi, 2001-04-21T11:04Z

Nej, det där funkade inget bättre.

Permalänk: https://www.webforum.nu/p/341809

## #7 — Peter_B, 2001-04-21T21:19Z

få se.. kan du klistra in lite mer av koden runt om, så att vi kan få se lite mer helheten..?

Permalänk: https://www.webforum.nu/p/341810

## #8 — cgi, 2001-04-22T09:55Z

Visst kan jag det:

$sth = $dbh-\>prepare("SELECT \* from tabell order by nr DESC LIMIT $start2, $poster_per_sida");
$sth-\>execute();

$sth2 = $dbh-\>prepare("SELECT \* from admin");
$sth2-\>execute; 
$info = $sth2-\>fetchrow_hashref();

while (@row = $sth-\>fetchrow_array) {

while ($info-\>{'inlagg'}) {
$\_ =\~ s/\\\[namn\\\]/$row\[1\]/ig;

push (@inlagg,$\_);
}
print "@inlagg";

}

Permalänk: https://www.webforum.nu/p/341811

## #9 — Peter_B, 2001-04-22T10:23Z

okey.. få tänka :) 

```
 

$sth = $dbh->prepare("SELECT * from tabell order by nr DESC LIMIT $start2, $poster_per_sida");
$sth->execute();

$sth2 = $dbh->prepare("SELECT * from admin");
$sth2->execute; 
$info = $sth2->fetchrow_hashref();

while (@row = $sth->fetchrow_array) {

while ($info = $sth2->fetchrow_hashref() && $_ = $info->{'inlägg'}) {
$_ =~ s/\[namn\]/$row[1]/ig;

push (@inlagg,$_);
}
print "@inlagg";

}
```

kanske funkar?

Permalänk: https://www.webforum.nu/p/341812

## #10 — cgi, 2001-04-22T11:58Z

Nej det funkar inte. :(

Permalänk: https://www.webforum.nu/p/341813

## #11 — Peter_B, 2001-04-22T22:44Z

hmm.. blir det kompileringsfel eller vadå? 

kan du skriva dit lite debug-printar så att du kan testa vad som finns i alla variabler?

Permalänk: https://www.webforum.nu/p/341814

## #12 — cgi, 2001-04-23T08:48Z

Och med debug-printar menar du. :q

Permalänk: https://www.webforum.nu/p/341815

## #13 — Peter_B, 2001-04-23T09:48Z

ah, tja att du skriver ut innehållet i alla variabler i ditt program, precis innan de ska användas. typ

print "DEBUG: \\$\_ = $\_";

samt allt annat som kan vara av intresse. det blir mycket lättare att leta fel då, eftersom man kan följa precis vad som händer.

Permalänk: https://www.webforum.nu/p/341816

## #14 — cgi, 2001-04-23T16:06Z

print "DEBUG:  har jag faktiskt aldrig sett förut, 
men det ger iallafall inget felmeddelande.

\[Redigerat av cgi den 23 apr 2001\]

Permalänk: https://www.webforum.nu/p/341817

## #15 — Peter_B, 2001-04-23T21:40Z

just ordet "debug" spelar ingen roll, det är bara så att man som testare vet vad det är man ser. 

när man skriver och testar ett nytt program så är det bra att skriva ut lite relevanta variabler då och då, så märker man ganska lätt vad som blir fel. 

sen när programmet är klart så kan man ta bort det hela. alternativt:

```
if ($debug) { print "debug: blabla"; }
```

och sedan sätta $debug=1;

i början av scriptet och sedan ändra till $debug=0; när man är klar. 

tror att ditt problem kräver en lite närmare analys (på detta sätt) av vad som händer.

Permalänk: https://www.webforum.nu/p/341818

## #16 — cgi, 2001-04-24T17:00Z

Jag har satt så här:

$debug = '1';
if ($debug) { 
print qq\~ $\_ =\~ s/\\\[namn\\\]/$row\[1\]/ig \~;
$debug = '0';
}

men inget händer.

Permalänk: https://www.webforum.nu/p/341819

## #17 — Peter_B, 2001-04-24T21:47Z

hmmm... 

kanske 

```
$debug = '1';
if ($debug) { 
$_ =~ s/\[namn\]/$row[1]/ig;
print "debug: $_";
$debug = '0';
}
```

annars... om det känns helt hopplöst så kan du maila ditt script till mig, peter@scorpiondata.com, så tar jag och analyserar lite nogrannare.

Permalänk: https://www.webforum.nu/p/341820

## #18 — cgi, 2001-04-25T09:28Z

Nej du, det händer fortfarande inget.
Visst skulle jag kunna maila över scriptet men du har ju nästan sett hela några inlägg längre upp.

Permalänk: https://www.webforum.nu/p/341821

## #19 — Peter_B, 2001-04-25T10:32Z

jag tror nog inte att felet finns i den del av koden som omvandlar, tror nog att det är fel i sakerna som hämtar från databasen. prova att göra allt utan att omvandla först, du kan lägga till det sen när du vet att allt annat funkar.

Permalänk: https://www.webforum.nu/p/341822

## #20 — cgi, 2001-04-25T17:14Z

Allt annat funkar kanon, 
det är när jag klistrar in:

while ($info = $sth2-\>fetchrow_hashref() && $\_ = $info-\>{'inlagg'}) {
$\_ =\~ s/\\\[namn\\\]/$row\[1\]/ig;

push (@inlagg,$\_);
}
print "@inlagg";

som det inte fungerar.

Permalänk: https://www.webforum.nu/p/341823

---

Tråden på webben: https://www.webforum.nu/amne/perl-ruby/19344-omvandla-variabel  
Nästa sida: https://www.webforum.nu/amne/perl-ruby/19344-omvandla-variabel/page2.md
