in reply to Re: Invoking API
in thread Invoking API

So for this line,

$image->Annotate( gravity =>'southeast', font =>'Arial', pointsize =>$fontsize, fill =>$color, x =>500, y =>$y, text =>$config_data[$i][0], " Information Last + Updated at: ", scalar localtime((stat($filename))[9]))";

It's the text section that's driving me crazy. Normally the text is supplied with single quotes, which as you've explained is not interpolated. But having the line like this isn't working either:

... text =>"$config_data[$i][0] Information Last U +pdated at: scalar localtime((stat($filename))[9]))";

Nor is any combination of double quotes, no quotes, or comma-separated values I can think of. I keep getting syntax errors. I'm sure this is simple but I just don't see it.

Replies are listed 'Best First'.
Re^3: Invoking API
by soonix (Chancellor) on Jul 05, 2013 at 07:34 UTC

    scalar localtime((stat($filename))[9]) is not a variable (although its result varies, of course), so I guess variable interpolation doesn't help here.

    Here, I'd use the string concatenation operator, like this:

    text =>$config_data[$i][0] . " Information Last Updated at: " . lo +caltime((stat($filename))[9]) );

    My perl is a bit rusty (peak use was at the turn of the century), but AFAIR the scalar can be omitted here

      1. Turns out there were extra parentheses in the scalar/localtime routine, which were closing out the text field early. Just another case of a "short circuit between the headphones". 2. Thanks to the respondents, who encouraged me to "pretty-fy" the API call; that's what led me to the cause.