http://www.perlmonks.org?node_id=523371


in reply to Re: problem in a small script
in thread problem in a small script

I'd normally not use backticks myself to run something external to get data that Perl can easily give me, but if you do you may need to chomp the results. If you try the following you will see that the un-chomp()ed newline returned at the end of the date command pushes the second "*" down:
#!/usr/bin/perl use strict; use warnings; my $next_backup_file = "daily-incremental-backup." . `date +%Y%m%d`; print "*$next_backup_file*\n";
You could use Perl's build in time command and then wouldn't have to chomp the result. There are lots of ways to use this, this is one way I have done it:
# # Get time for now. # my %NOW; ($NOW{'sec'}, $NOW{'min'}, $NOW{'hour'}, $NOW{'mday'}, $NOW{'mon'}, $NOW{'year'}, $NOW{'wday'}, $NOW{'yday'}, $NOW{'isdst'}) = localtime time; my $next_backup_file = sprintf("daily-incremental-backup.%04i%02i%2i", $NOW{'year'} + 1900, $NOW{'mon'} + 1, $NOW{'mday'});