I have used the following statements to get the current time.
print "$query executed successfully at ",localtime;
print "$query executed successfully at ",(localtime);
print "$query executed successfully at ".(localtime);
Output
executed successfully at 355516731103960
executed successfully at 355516731103960
executed successfully at Wed Apr 7 16:55:35 2010
The first two statements are not printing the current time in a date format. Third statement only giving the correct output in a date format.
My understanding is the first one is returning a value in scalar context, so it is returning numbers.
Then in the second print I used localtime in list context only, why it's also giving number output.
Perhaps the most important thing you can learn for programming in Perl, is context. Many built-in subroutines, and operators, behave differently depending on the context.
print "$query executed successfully at ", localtime, "\n"; # list context
print "$query executed successfully at ",(localtime),"\n"; # list context
print "$query executed successfully at ". localtime, "\n"; # scalar context
print "$query executed successfully at ".(localtime),"\n"; # scalar context
print "$query executed successfully at ", scalar localtime, "\n"; # scalar context
print "$query executed successfully at ", scalar (localtime),"\n"; # scalar context
This can be made clearer by splitting up the statements.
my $time = localtime; # scalar context
print "$query executed successfully at $time\n";
my @time = localtime; # list context
print "$query executed successfully at @time\n";