Toon posts:

[perl] drama met ()))(()) haakjes.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Volgende is het geval ik probeer een Perl script te bouwen wat op basis van een aantal variabelen een insert query zal produceren welke weer ergens anders gebruikt kan worden.

De insert zou er zo uit moeten komen te zien:
code:
1
INSERT INTO test-tabel (test01, test02, test03) values (aa1, aa2)

nu probeer ik het values -> gedeelte in een variable aan te maken maar hier gaat het mis:

code:
1
2
3
 $insert_query_values = "values ($PROCESS_FLAG, $LOCK_FLAG)";

 print $insert_query_values;


Het resultaat wat ik verwacht is :
code:
1
values (cell-a1,cell-c1)

Ik krijg echter terug:
code:
1
)alues (cell-a1, cell-c1


Ik weet dat het iets met de haakjes te maken heeft maar hoe en wat.... wat gaat hier niet goed?

Johan.

  • xtrme
  • Registratie: April 2004
  • Laatst online: 30-11 06:57
$insert_query_values = "values ($PROCESS_FLAG,$LOCK_FLAG)";

print $insert_query_values;


keb er geen verstand van maar logischer wijs bij deze geen spacie

  • .oisyn
  • Registratie: September 2000
  • Nu online

.oisyn

Moderator Devschuur®

Demotivational Speaker

Waar komt die output in terecht? In een terminal oid? Het lijkt er namelijk op dat $LOCK_FLAG een control character bevat (een carriage return, ofwel '\r') waardoor de cursor naar het begin van de regel wordt geplaatst alvorens de ')' te printen.

Je string bevat dus niet ")alues (cell-a1,cell-c1" maar "values (cell-a1,cell-c1\r)"

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Topicstarter
Helemaal gelijk..... de waarden haalde ik uit een CSV file de variable welke gevuld is met de laatste waarde had dus inderdaad een return in zich. Een extra "end line" er bij en het probleem is opgelost.


Thanks.