perl - 采用不同值的 Perl 变量
问题描述
我需要以相同的格式上传具有不同名称的文件,如下所示:
file_name_yyyy-mm-dd_code.txt
如何用 Perl 编写它?
现在我可以这样做:
#!/usr/bin/perl
use warnings;
use strict;
use Config::Simple;
use File::Basename;
use Getopt::Long;
use Pod::Usage;
use Net::Google::Drive::Simple;
use POSIX 'strftime';
use Storable;
# my $date = strftime '%m-%d-%Y', localtime;
# for testing purpose, use specific date
my $date = '2018-07-16';
my $code;
# $code will change
my $gd = Net::Google::Drive::Simple->new();
my ($p1, $folder) = $gd->children("Test");
$folder = <folder id>;
$gd->file_upload("testfile_${date}_${code}.txt", $folder);
并将具有此格式的文件上传到与文件相同的文件夹中perl
:
file_name_yyyy-mm-dd.txt
但它不会上传这种格式的文件(我需要这样做):file_name_yyyy-mm-dd_somecode.txt
例如:
file_name_2018-07-16_code1.txt
或file_name_2018-07-16_code2.txt
我完全没有使用 Perl 的经验,所以我什至不知道去哪里找。
解决方案
问题是,在
"file_name_$date_$code.txt"
$date_
是一个有效的变量名,但不是您想要的。用大括号描述标识符,像这样
"file_name_${date}_${code}.txt"
或者你可以使用sprintf
,像这样
sprintf 'file_name_%s_%s.txt', $date, $code
产生相同的结果
推荐阅读
- oracle - Oracle XE on AWS 测试实例许可证
- powershell - 点源文件中的 PowerShell 点源 - 导入类
- javascript - "parsererror" SyntaxError: 位置 0 处的 JSON 中的意外标记 <
- javascript - 通过在 Javascript 中使用 splice 函数切割数组来编写基本算法脚本
- javascript - 谷歌地图“未捕获的类型错误:无法读取未定义的属性‘defaultView’”
- python - 多个字典/字符串通过不应该的 if 语句
- java - 使用洪水填充算法时出现 StackOverflowError
- ruby-on-rails - 测试自动化 - 新指南
- sql - SQL查询获取最新用户更新记录
- android - Android Studio - 模拟器配置文件和设备配置文件非常不同