Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re: Variable interpolation in a file to be read in

by Anonymous Monk
on Oct 06, 2011 at 15:58 UTC ( #930010=note: print w/ replies, xml ) Need Help??


in reply to Variable interpolation in a file to be read in

That is what placeholders are for :) Placeholders and Bind Values,

For interpolations String::Interpolate::RE


Comment on Re: Variable interpolation in a file to be read in
Re^2: Variable interpolation in a file to be read in
by runrig (Abbot) on Oct 06, 2011 at 16:12 UTC
    And if not placeholders and bind values, then at least quote

      quote() is evil. Well, not exactly, but using quote() manually causes more trouble than it is worth. Always use placeholders and you never again have to think about quoting values for SQL statements. Plus, DBI, DBD or database can cache prepared statements for better application performance.

      Alexander

      --
      Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)
        Always use placeholders...
        Beware of absolutes. Placeholders are not always the way to go.
Re^2: Variable interpolation in a file to be read in
by Anonymous Monk on Oct 06, 2011 at 17:37 UTC
    Thanks for the input. In the sample code I posted I am not calling any database handler - yet. I just want to display the sql for now that I am pulling from a hash. So where would the placeholder go in that code?
      E.g., instead of:
      WHERE asof_date = '$test_date'
      do:
      WHERE asof_date = ?
      and when you execute the sql statement:
      $sth->execute($test_date);

        Thanks for the very quick reply! The sqls, could hold the same variable ($test_date) multiple places because there are multiple dates in the table for various purposes. The sqls are not identical in the number of variables. Some have multiple $test_date some just one. Also the order the variables in the sqls could differ from one sql to the other, so a single set of $sth->execute($schema,$test_date) would not work.

        But in this case, forget about the sqls and the database connection. The sample code I submitted does not deal with the database. I just created a quick and dirty code because I was troubleshooting why my sqls errored out. Then I found out that the actual variables in the sqls don't interpolate the variable value, so I wrote up something quickly to pinpoint the issue - with no DB connection.

        So again, if I just read in a text file which have some perl variables, how can I have the text read in, take on the value of the variable that I defined in the program that reads in the text? - I guess is a better definition of the issue I am facing.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://930010]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (9)
As of 2014-12-26 15:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (171 votes), past polls